Как применять пользовательскую бизнес-логику для управления правами доступа
Вы можете изменять права доступа пользователей на записи системы при помощи бизнес-процессов. Каждое событие может автоматически запустить процесс по определенному условию.
Пример
В результате, каждый раз, когда тип контакта будет изменяться на "Сотрудник", процесс будет забрать права на редактирование и удаление этой записи у всех пользователей системы, кроме роли “HR. Группа руководителей“, которые смогут просматривать, редактировать и удалить запись.
Общая схема бизнес-процесса (Рис. 378):
1.Начальное событие [Сигнал] срабатывает при изменении значения в поле [Тип] страницы контакта на "Сотрудник" и сохраняет уникальный идентификатор измененной записи.
2.Элемент процесса [Изменить права доступа] устанавливает права доступа на изменение или удаление записи. Этот элемент получает значение уникального идентификатора записи контакта из начального события.
Рис. 378 Бизнес-процесс "Изменение прав доступа на редактирование новой записи сотрудника"
Добавьте на диаграмму процесса Начальное событие [Сигнал] и укажите для него следующие параметры (Рис. 379).
1.В поле [Объект] укажите “Контакт”.
2.Выберите тип события “Изменение записи”.
3.В области [Ожидать изменения] выберите [Любого поля из выбранных] и добавьте колонку “Тип”.
4.Укажите условие "Тип = Сотрудник".
Рис. 379 Параметры начального события [Сигнал]
Добавьте Элемент процесса [Изменить права доступа] на диаграмму процесса и настройте для него следующие параметры (Рис. 381).
1.В поле [Для записей какого объекта изменить права доступа?] укажите “Контакт”.
2.В поле [Изменить доступ на все записи, соответствующие условию] настройте фильтр по колонке Id (”Id=Изменен тип контакта.Уникальный идентификатор записи”) (Рис. 380):
a.Нажмите [+ Добавить условие], чтобы добавить новое условие фильтрации.
b.В открывшемся окне выберите из списка значение ”Id”.
c.Кликните <?> и выберите “Сравнить с параметром”.
d.В открывшемся окне на вкладке [Элементы процесса] выберите начальное событие (в левой части окна).
e.В правой части окна выберите параметр [Уникальный идентификатор записи].
Рис. 380 Настройка фильтра по колонке Id
На заметку
Подробно о передаче значения уникального идентификатора записи между элементами процесса читайте в статье ”Как настроить передачу параметров между элементами бизнес-процесса”.
3.В поле [Какие права забрать?]нажмите кнопку и выберите ”Для всех ролей и пользователей”. Снимите признак под изображением
, чтобы забрать у пользователей права на редактирование и удаление записи, но оставить право на чтение.
4.В поле [Какие права добавить?] нажмите кнопку и выберите ”Для роли”.
a.В появившемся поле [Роль] нажмите кнопку и выберите “Значение справочника“.
b.В открывшемся окне выбора значения справочника укажите “HR. Группа руководителей“.
Рис. 381 Параметры элемента процесса [Изменить права доступа]
После настройки элементов, объедините их на диаграмме в единый процесс и сохраните.
В результате, каждый раз, когда тип контакта будет изменяться на "Сотрудник", процесс будет забрать права на редактирование и удаление этой записи у всех пользователей системы, а у организационной роли "HR.Группа руководителей" будет полный доступ к записи и они смогут ее просмотреть, отредактировать или удалить.
На заметку
Убедитесь, что в разделе [Права доступа на объекты] дизайнера системы настроены права доступа на выполнение операций в нужном объекте (в данном случае в объекте "Контакт"). Настройка прав доступа на объекты описана в статье “Права доступа на объекты”.
Смотрите также
•Элемент процесса [Изменить права доступа]
•Как настроить передачу параметров между элементами бизнес-процесса