Пользовательские критерии
В SimpleOne доступ к элементам контента и категориям контролируется администраторами системы. Они могут создавать пользовательские критерии и задавать условия доступа к объектам в зависимости от указанных критериев.
Создание пользовательских критериев
Требуемая роль: admin, security_admin (для операций CRUD – создание, чтение, редактирование и удаление).
Пользователи без администраторских ролей могут только просматривать пользовательские критерии, созданные ранее.
Чтобы создать пользовательский критерий, выполните следующие шаги:
- Перейдите в Управление пользователями → Пользовательские критерии.
- Нажмите Создать и заполните поля.
- Нажмите Сохранить или Сохранить и выйти, чтобы применить изменения.
Поля формы Пользовательские критерии
Поле | Обязательно | Описание |
---|---|---|
Наименование | Нет | Укажите название записи. |
Роли | Нет | Укажите роли, которыми должны обладать пользователи. |
Группы | Нет | Укажите группы, в которых должны состоять пользователи. |
Пользователи | Нет | Укажите записи пользователей. |
Расширить условия | Нет | Установите флажок, чтобы задать более точные условия. Когда флажок отмечен, появляется поле Условия. |
Условия | Нет | Задайте более точное условие для вашего критерия, используя конструктор условий. Пустое условие всегда возвращает значение true. Поле появляется, когда отмечен флажок Расширить условия. Заданные условия применяются к пользователям из таблицы Сотрудники. Для пользователей из таблицы Пользователи и других расширенных от нее таблиц или из таблицы Сотрудники, указанные условия возвращают значение false. |
Все роли совпадают | Нет | Установите флажок, если пользователь должен обладать всеми ролями, указанных в поле Роли, чтобы удовлетворить критерии. |
Все группы совпадают | Нет | Установите флажок, если пользователь должен быть членом всех групп, указанных в поле Группы, чтобы удовлетворить критерий. |
Активен | Нет | Установите флажок, чтобы активировать запись пользовательского критерия. |
Компании | Нет | Укажите компании, которым должны соответствовать пользователи. Оставьте поле пустым, если разрешены пользователи из всех компаний. |
Расположения | Нет | Укажите расположения, которым должны соответствовать пользователи. Оставьте поле пустым, если разрешены пользователи из всех местоположений. |
Департаменты | Нет | Укажите департаменты, которым должны соответствовать пользователи. Оставьте поле пустым, если разрешены пользователи из всех департаментов. |
Все условия совпадают | Нет | Установите флажок, если все условия этой записи должны быть удовлетворены для обеспечения доступа. Если флажок не отмечен, пользователи должны удовлетворить одно условие для получения доступа. Например, рассмотрим пользовательский критерий со следующими условиями:
Сотрудник из компании Н и расположением Б имеют доступ к объектам, как и сотрудник из компании П и расположением А. Если флажок не отмечен, пользователь должен соответствовать хотя бы одному из указанных условий. Сотрудник из компании Б также, как и сотрудник из компании А имеют доступ к объектам. |
Использование API
Cерверный класс API SimpleUserCriteria позволяет выполнять поставленные задачи при работе с функциональностью пользовательских критериев.
Пример использования
Вам нужно ограничить доступ к каталогу услуг таким образом, чтобы только определенные пользователи могли получить к нему доступ и управлять им: пользователи группы Контент-менеджеры из Москвы, Россия. Для этого создайте запись критериев пользователя и задайте условия.
- Перейдите в Управление пользователями → Пользовательские критерии.
- Нажмите Создать и заполните поля:
Поле | Значение |
---|---|
Наименование | Критерии пользователей для каталога услуг |
Группы | Контент-менеджеры |
Расположение | Москва, Россия |
- Перейдите в Безопасность → Контроль доступа (ACL) и нажмите Cоздать.
- В поле Таблица выберите таблицу Каталог услуг.
- Заполните скрипт следующим методом SimpleUserCriteria() – userAcceptanceByCriteria(user, criteria).
const uc = new SimpleUserCriteria();
ss.info(uc.userAcceptanceByCriteria(ss.getUserID(), '158617888715304763'));
// Info: true