CftClub.ru
Клуб специалистов ЦФТ-Банк

Ограничение по доступу

 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Настройка и сопровождение
Предыдущая тема :: Следующая тема  
Автор Сообщение
cool_dude
Участник - экстремал


Вступление в Клуб: 05.02.2013
СообщениеЧт Янв 30, 2025 13:50   Ограничение по доступу Ответить с цитатой
Полезность: Нет оценки
Здравствуйте, уважаемые форумчане.
Есть проблема.
В справочнике "Подразделения" есть представление "Полный список". Сейчас у меня в доступах стоит "Доступ по реквизиту" по группе подразделения. Например если пользователь числится в группе подразделения 001-01, то соответственно видит все записи принадлежащей к этому подразделению. Но когда заходит в это представление, то видит все подразделения банка. Вопрос. Как ограничить? т.е. если у пользователя в доступах стоит группа 001-01, то в этом представлении должна выходить только одна запись. А если пользователь числится в 001 ГБ, то должен видеть все подразделения.
Прошу проконсультировать.
Volod
Эксперт


Вступление в Клуб: 19.09.2007
СообщениеЧт Янв 30, 2025 17:19    Ответить с цитатой
Полезность: Нет оценки
В окне Распределение прав доступа какая картина?
В подокне Экземпляры выберите Подразделение и галкой пометьте нужное. В "Классы" выберите класс Подразделение. В Субъекты нажмите кнопку Доступ - будет написано Доступно XX из XXX, нажмите воронку с галкой - будет список субъектов, которые имеют доступ к конкретному подразделению/списку подразделений.
pabrz
Участник со стажем


Вступление в Клуб: 27.09.2022
СообщениеПт Янв 31, 2025 07:10    Ответить с цитатой
Полезность: Нет оценки
Тут вопрос, как мне кажется, немного в другом и он проблемный.
Если речь о дистрибутивном представлении "Полный список" и в нем сейчас доступ по реквизиту отсутствует, а работаете вы через IDE, то вы никак такой доступ не организуете.

В IDE ушла возможность включить или выключить доступ по реквизиту в дистрибутивном представлении, поскольку это теперь требует заполнения определенного тэга в описании подразделения, и, соответственно, его deploy на схему. А это сделать не позволит лицензия.

В старой среде разработки с доступом по реквизиту на дистрибутивных представлениях можно было работать.

Таким образом если сейчас у вас IDE, представление дистрибутивное, и доступ по этому реквизиту в представлении не включен - то вы никак его не добавите. Вы максимум можете сделать свое представление и все необходимое сделать там.

Возможно это можно объехать через расширение к дистрибутивному представлению - не проверял, но напрямую точно никак не сделать.
cool_dude
Участник - экстремал


Вступление в Клуб: 05.02.2013
СообщениеПт Янв 31, 2025 07:18    Ответить с цитатой
Полезность: Нет оценки
pabrz пишет:
Тут вопрос, как мне кажется, немного в другом и он проблемный.
Если речь о дистрибутивном представлении Полный список и в нем сейчас доступ по реквизиту отсутствует, а работаете вы через IDE, то вы никак такой доступ не организуете.

В IDE ушла возможность включить или выключить доступ по реквизиту в дистрибутивном представлении, поскольку это теперь требует заполнения определенного тэга в описании подразделения, и, соответственно, его deploy на схему. А это сделать не позволит лицезния.

В старой админике с доступом по реквизиту на дистрибутивных представлениях можно было работать.

Таким образом если сейчас у вас IDE, представление дистрибутивное, и доступ по этому реквизиту в представлении не включен - то вы никак его не добавите. Вы максимум можете сделать свое представление и все необходимое сделать там.

Возможно это можно объехать через расширение к дистрибутивному представлению - не проверял, но напрямую точно никак не сделать.
Да, это дистрибутивное представление. И как объехать через расширение или же какие условия поставить чтобы сработало?
pabrz
Участник со стажем


Вступление в Клуб: 27.09.2022
СообщениеПт Янв 31, 2025 07:38    Ответить с цитатой
Полезность: 1
Тут надо понимать две вещи.
Есть два способа сделать расширение для представления.
Один более безопасный, один менее безопасный.

Более безопасный предполагает, что в расширении вы описываете только свои новые поля, т.е. мы получаем расширение вида:

Код:

@name('Представление (расширение)')
@tag('EXTENSION')
view VW_CRIT_ТИПА_ИМЯ_РАСШИРЕНИЯ instead of VW_CRIT_ТИПА_ИСХОДНОЕ_ПРЕДСТАВЛЕНИЕ {
   type main is
      select ext(ВЫТАСКИВАЕМ_КАКОЕ_ТО_ПОЛЕ : C_АЛИАС_ПОЛЯ
      )
      in VW_CRIT_ТИПА_ИСХОДНОЕ_ПРЕДСТАВЛЕНИЕ;
}


При таком подходе, если ЦФТ поменяют родное представление, расширение от этого не сломается.
При этом внутри расширения по алиасу курсора из VW_CRIT_ТИПА_ИСХОДНОЕ_ПРЕДСТАВЛЕНИЕ доступны все уже описанные в первом представлении поля.

Второй вариант расширения - полная подмена.

Код:
@name('ИМЯ_ПРЕДСТАВОЕНИЯ (расширение)')
@tag('EXTENSION')
view VW_CRIT_ТИПА_ИМЯ_РАСШИРЕНИЯ instead of VW_CRIT_ТИПА_ИСХОДНОЕ_ПРЕДСТАВЛЕНИЕ {
   type main is
      select x(x.[РЕКВИЗИТ] : id)
           in ::[КАКОЙ_ТО_ТИП] all where УСЛОВИЕ;
}


Такое представление поломается, если ЦФТ изменят порядок или состав полей.

Теперь о доступе.
доступы в IDE - это тэги. В доках есть описание.
Вам нужен, судя по всему, вот этот:

Код:
@access_attribute(<синоним колонки>)  Доступ по реквизиту


Его типовой пример:

Код:
class класс;

@access_attribute(DEPART)
@name('название')
view VW_CRIT_представление {
type main is
select a(
              a.[DEPART]  : DEPART
) in
.....



Попробуйте такую штуку сунуть в расширение.
Но в последнее время я обратил внимание, что доступ по реквизитам не всегда работает хорошо, так что к подобным опциям стараюсь не прибегать - иногда проще прямо условие в where бахнуть.
Доступ по реквизиту подразделение у меня, например, где-то работает, где-то нет. Отношу это к проблемам ядра вообще и IDE в частности.

В вашем случае может быть попроще - у вас группа - это более конкретный реквизит чем иерархическая конструкция DEPART.
cool_dude
Участник - экстремал


Вступление в Клуб: 05.02.2013
СообщениеЧт Фев 06, 2025 08:43    Ответить с цитатой
Полезность: Нет оценки
Volod пишет:
В окне Распределение прав доступа какая картина?
В подокне Экземпляры выберите Подразделение и галкой пометьте нужное. В "Классы" выберите класс Подразделение. В Субъекты нажмите кнопку Доступ - будет написано Доступно XX из XXX, нажмите воронку с галкой - будет список субъектов, которые имеют доступ к конкретному подразделению/списку подразделений.
Вот такая картина в распределении прав по доступу "Подразделения" [img]Снимок экрана 2025-02-06 103624.png[/img]
cool_dude
Участник - экстремал


Вступление в Клуб: 05.02.2013
СообщениеЧт Фев 06, 2025 08:45    Ответить с цитатой
Полезность: Нет оценки
а как вставить картинку, скрин?
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Настройка и сопровождение Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах