Перейти к основному содержимому
Версия: 1.21.3

Пользовательские критерии

В SimpleOne доступ к элементам контента и категориям контролируется администраторами системы. Они могут создавать пользовательские критерии и задавать условия доступа к объектам в зависимости от указанных критериев.

Создание пользовательских критериев

подсказка

Требуемая роль: admin, security_admin (для операций CRUD – создание, чтение, редактирование и удаление).

Пользователи без администраторских ролей могут только просматривать пользовательские критерии, созданные ранее.

Чтобы создать пользовательский критерий, выполните следующие шаги:

  1. Перейдите в Управление пользователями → Пользовательские критерии.
  2. Нажмите Создать и заполните поля.
  3. Нажмите Сохранить или Сохранить и выйти, чтобы применить изменения.

Поля формы Пользовательские критерии

ПолеОбязательноОписание
НаименованиеНетУкажите название записи.
РолиНетУкажите роли, которыми должны обладать пользователи.
ГруппыНетУкажите группы, в которых должны состоять пользователи.
ПользователиНетУкажите записи пользователей.
Расширить условияНетУстановите флажок, чтобы задать более точные условия. Когда флажок отмечен, появляется поле Условия.
УсловияНетЗадайте более точное условие для вашего критерия, используя конструктор условий. Пустое условие всегда возвращает значение true.
Поле появляется, когда отмечен флажок Расширить условия.
Заданные условия применяются к пользователям из таблицы Сотрудники. Для пользователей из таблицы Пользователи и других расширенных от нее таблиц или из таблицы Сотрудники, указанные условия возвращают значение false.
Все роли совпадаютНетУстановите флажок, если пользователь должен обладать всеми ролями, указанных в поле Роли, чтобы удовлетворить критерии.
Все группы совпадаютНетУстановите флажок, если пользователь должен быть членом всех групп, указанных в поле Группы, чтобы удовлетворить критерий.
АктивенНетУстановите флажок, чтобы активировать запись пользовательского критерия.
КомпанииНетУкажите компании, которым должны соответствовать пользователи. Оставьте поле пустым, если разрешены пользователи из всех компаний.
РасположенияНетУкажите расположения, которым должны соответствовать пользователи. Оставьте поле пустым, если разрешены пользователи из всех местоположений.
ДепартаментыНетУкажите департаменты, которым должны соответствовать пользователи. Оставьте поле пустым, если разрешены пользователи из всех департаментов.
Все условия совпадаютНетУстановите флажок, если все условия этой записи должны быть удовлетворены для обеспечения доступа. Если флажок не отмечен, пользователи должны удовлетворить одно условие для получения доступа.
Например, рассмотрим пользовательский критерий со следующими условиями:
  • Расположение А или Б
  • Компания Н или П
Если отмечен флажок Все условия совпадают, доступ предоставляется только пользователям с такими расположениями и компаниями.
Сотрудник из компании Н и расположением Б имеют доступ к объектам, как и сотрудник из компании П и расположением А.
Если флажок не отмечен, пользователь должен соответствовать хотя бы одному из указанных условий. Сотрудник из компании Б также, как и сотрудник из компании А имеют доступ к объектам.

Использование API


Cерверный класс API SimpleUserCriteria позволяет выполнять поставленные задачи при работе с функциональностью пользовательских критериев.

Пример использования


Вам нужно ограничить доступ к каталогу услуг таким образом, чтобы только определенные пользователи могли получить к нему доступ и управлять им: пользователи группы Контент-менеджеры из Москвы, Россия. Для этого создайте запись критериев пользователя и задайте условия.

  1. Перейдите в Управление пользователями → Пользовательские критерии.
  2. Нажмите Создать и заполните поля:
ПолеЗначение
НаименованиеКритерии пользователей для каталога услуг
ГруппыКонтент-менеджеры
РасположениеМосква, Россия
  1. Перейдите в Безопасность → Контроль доступа (ACL) и нажмите Cоздать.
    • В поле Таблица выберите таблицу Каталог услуг.
  2. Заполните скрипт следующим методом SimpleUserCriteria()userAcceptanceByCriteria(user, criteria).
const uc = new SimpleUserCriteria();
ss.info(uc.userAcceptanceByCriteria(ss.getUserID(), '158617888715304763'));
// Info: true