Как разрешить для всех пользователей только просмотр справочника
Здравствуйте, Коллеги!:)
В моей работе потребовалось закрыть доступ к ряду справочников(возможен только просмотр). Появилась проблема со справочником ОПФ. Этот справочник открывается особым образом(прикрепил картинку). Пробовал через администрирование, получается, но он блокирует для всех, кроме сис. админов, а мне требуется перекрыть именно всем, даже сис. админу. Помогите, пожалуйста, добрые люди:)
Нравится
Здравствуйте!
Особенность системных администраторов в том, что они могут делать все.
Это администрируется системными операциями:
- CanDeleteEverything
- CanInsertEverything
- CanSelectEverything
- CanUpdateEverything
Для того, чтобы запретить всем пользователям вносить изменения в справочник необходимо создать соответствующую логику на уровне объекта справочника.
По умолчанию во всех справочниках проверяются права на системную операцию CanManageLookups (логика родительского объекта BaseLookup). Проверка реализована в процессе объекта в методе CanManageLookups.
Можно сделать следующее:
1) Создать новую системную операцию и никому на нее права не давать. Предположим, что ее код CanManageSpecialLookups. Естественно, права на эту операцию мы никому не даем.
2) Заместить объект справочника, в процессе объекта переопределить метод CheckCanManageLookups (установить признак "Переопределен").
Переопределенный метод должен выглядеть следующим образом:
UserConnection.DBSecurityEngine.CheckCanExecuteOperation("CanManageSpecialLookups");
После публикации только пользователи с правами на системную операцию CanManageSpecialLookups (то есть никто) смогут менять/добавлять/изменять данные справочника.