Пример 1: Руководители подразделений¶
Руководитель подразделения должен видеть документы своих подчиненных и вложенных. Подразделение документа определяется по полю “Подразделение” в карточке.
Данный пример состоит из двух карточек системы:
-
Генератор умных ролей “Руководители подразделений”.
-
Правило расчёта ACL “Руководители подразделений”.
Генератор умных ролей “Руководители подразделени锶
Данный генератор формирует набор умных ролей по подразделением. Для каждого подразделения он формирует умную роль, которая содержит руководителя этого подразделения и руководителей всех родительских подразделений относительно этого.
Данная карточка имеет следующие запросы и триггеры:
-
Запрос на получение списка ролей, который возвращает по идентификатору карточки подразделения всех руководителей подразделения и всех родительских подразделений. Запрос также работает в режиме множественной выборки.
-
Запрос на получение всех владельцев умной роли, который возвращает все подразделения и данные, необходимые для генерации умных ролей. В качестве имени владельца умной роли используется имя подразделения. В качестве календаря используется календарь подразделения. В качетсве временной зоны используется временная зона подразделения.
-
Запрос на получение данных владельца умной роли, который возвращает данные, необходимые для генерации умной роли по идентификатору подразделения.
-
Триггеры, которые запускают обновление умных ролей в следующих ситуациях:
-
При изменении родительского подразделения в карточке подразделения - перерасчитываются все умные роли.
-
При изменении руководителя подразделения в карточке подразделения - перерасчитываются умные роли для текущего подразделения и всех дочерних подразделений.
-
Правило расчёта ACL “Руководители подразделени锶
Данное правило производит расчёт ACL для карточек с типами “Документ” и “Договорной документ” и записывает в ACL роли, созданные с помощью генератора умных ролей “Руководители подразделений”.
Подразделения для получения умной роли определяется по полю “Подразделение” в карточке.
Данная карточка имеет следующие запросы и триггеры:
-
Запрос на получение владельцев умных ролей по карточке, который возвращает идентификатор подразделения карточки по его идентификатору. Запрос также работает в режиме множественной выборки.
-
Триггеры, которые запускают обновление ACL для карточек в следующих ситуациях:
- При изменении подразделения в карточке документа - запускает обновление ACL самой карточки при изменении поля “Подразделение” в нём.