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


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

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

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

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

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

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

ПолеОбязательноОписание
НаименованиеНетУкажите название записи.
РолиНетУкажите роли, которыми должны обладать пользователи.
ГруппыНетУкажите группы, в которых должны состоять пользователи.
ПользователиНетУкажите записи пользователей. 
Расширить условияНетУстановите флажок, чтобы задать более точные условия. Когда флажок отмечен, появляется поле Условия.
УсловияНет

Задайте более точное условие в конструкторе условий. Пустое условие всегда возвращает true

Поле появляется, когда отмечен флажок Расширить условия.

Заданные условия применяются к пользователям из таблицы Сотрудники. Для пользователей из таблицы Пользователи и других расширенных от нее таблиц или из таблицы Сотрудники, указанные условия возвращают значение false.

Все роли совпадаютНетУстановите флажок, если пользователь должен обладать всеми ролями, указанными в поле Роли, чтобы удовлетворить критерии.
Все группы совпадаютНетУстановите флажок, если пользователь должен быть членом всех групп, указанными в поле Группы, чтобы удовлетворить критерий.
АктивенНетУстановите флажок, чтобы активировать запись пользовательского критерия.
КомпанииНетУкажите компании, которым должны соответствовать пользователи. Оставьте поле пустым, если разрешены пользователи из всех компаний.
РасположенияНетУкажите расположения, которым должны соответствовать пользователи. Оставьте поле пустым, если разрешены пользователи из всех местоположений.
ДепартаментыНетУкажите департаменты, которым должны соответствовать пользователи. Оставьте поле пустым, если разрешены пользователи из всех департаментов.
Все условия совпадаютНет

Установите флажок, если все условия этой записи должны быть удовлетворены для обеспечения доступа. Если флажок не отмечен, пользователи должны удовлетворить одно условие для получения доступа. 

Например, рассмотрим пользовательский критерий со следующими условиями:

  • Расположение: А или Б
  • Компания: Н или П

Если отмечен флажок Все условия совпадают, доступ предоставляется только пользователям с такими расположениями и компаниями. 

Сотрудник из компании Н и расположением Б имеют доступ к объектам, как и сотрудник из компании П и расположением А. 

Если флажок не отмечен, пользователь должен соответствовать хотя бы одному из указанных условий. Сотрудник из компании Б также, как и сотрудник из компании А имеют доступ к объектам.

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

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

Пример


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

  1. Перейдите в Управление пользователямиПользовательские критерии.
  2. Нажмите Создать и заполните поля:

    Поле

    Значение

    НаименованиеКритерии пользователей для каталога услуг
    ГруппыКонтент-менеджеры
    Расположение

    Москва, Россия

  3. Перейдите в Безопасность → Контроль доступа (ACL) и нажмите Cоздать.

    • В поле Таблица выберите таблицу Каталог услуг.
  4. Заполните скрипт следующим методом SimpleUserCriteria() userAcceptanceByCriteria(user, criteria).

    userAcceptanceByCriteria
    const uc = new SimpleUserCriteria();
    ss.info(uc.userAcceptanceByCriteria(ss.getUserID(), '158617888715304763'));
    // Информация: true

  • No labels