Руководтсво администратора/разработчика

Документация

Безопасность

Компоненты ИБ

Управление доступом к данным

Доступ к данные, с которыми работают пользователи можно ограничить исходя из следующих понятий:

  • Роль 
  • Группа

Роль пользователя - определяем набор прав на работу с данными (создание, изменение, удаление и просмотр) на уровне каждого объекта, а также на операции в Studio (администрирование БД, создание шаблона и тд).ё

Вы можете сами создавать любое количество Ролей с различными комбинациями прав. Роль испльзуется в том числе и для разделения пользовательских интерфейсов. Так например, пользователи роли "Операторы" будут видеть другой набор инструментов интерфейса нежели пользователи роли "Методисты".

Группа пользователя - параллельная роли сущность, которая используется при запросе данных для разделения доступа к данным одного шаблона или одного запроса.

Вы можете создать любое количество Групп и назначить для каждого Профиля пользователя любое количество Групп.

При создании объекта пользователем создается служебное поле с указанием текущих Групп пользователя в текущего активного Профиля.

Как это работает?

При авторизации пользователя происходит использование одного из Профилей пользователя. Профиль - это объект в базе данных, в котором связана учетная запись пользователя (его идентификационные даннные), Роль пользователя - объект в котором указан набор привелегий на работу с данными и Группа пользователя - объект в базе данных, где указано название группы и любые другие даннные.

Например, если в рамках разработки системы мы решим, что пользователи должны делиться по отделам, то группой будет являться отдел. Вы можете расширить описание отдела (группы) любыми другими аттрибутами (телефон, руководитель и тд)

Таким образом, при авторизации происходит сохранение текущих прав пользователя, а именно Роли и Группы.

И ещё

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

 

Группы

Группа - это объединение пользователей в определенное сообщество, которому может быть настроены дополнительные права доступа к данным.

Когда нужны группы?

Группы могут понадобиться для разграничения видимости данных для пользователей одной Роли. Так например, если вы проектируете систему, в которой необходимо для различных групп (это могут быть организации) обеспечить доступ к данным в рамках одной Роли.

Роли разграничивают действия пользователя и настройку кабинетов исходя из задач. А Группы позволяет разделить доступ к данным для пользователей с одинаковыми Ролями.

Как это работает?

Если пользователь включен в Группу, то к создаваемые им объекты дополняются системный полем _groups, в котором хранятся идентификаторы текущих групп пользователя в рамках текущей Роли.

Напомним, что текущий Профиль пользователя, под готовым он осуществи вход в систему содержить связь между Ролью и Группой, таким образом пользователь получает права согласно Роли (интерфесы и доступ к операциям, так и к права доступа к данным в рамках личного кабинета текущей Роли)

 

Запросы, в который установлен параметр Фильтр по группе будут дофильтровываться исходя из текущих Групп пользователя в рамках активной Роли.

Механизм ограничений

 
Выбрана группа пользователь видит только объекты, у которых есть вхождения одной из текущих ролей пользователя в список групп доступа; пользователь видит все объекты запроса
Не выбрана группа пользователь не видит объекты данного запроса пользователь видит все объекты запроса