Доступ к записям (RLS)
Помимо прав на тип записи целиком (CRUD-права ролей — «может читать заявки», «может удалять клиентов»), Orbita умеет ограничивать доступ на уровне отдельных записей: кто какие строки видит и может менять. Это настраивается в конструкторе сущности, на вкладке Доступ к записям.
Как работают правила
- Правило = роль (или «Все роли») + операция (Чтение или Редактирование/Удаление) + тип правила.
- Правила одной сущности объединяются через ИЛИ: достаточно одного совпавшего правила, чтобы запись стала доступна.
- Право на Редактирование/Удаление автоматически включает чтение: пользователь, которому разрешено менять запись, всегда может её видеть.
- Роль admin правилами не ограничивается — администратор видит все записи всегда.
Безопасно по умолчанию
Если для сущности не настроено ни одного правила, обычные пользователи не видят ни одной записи — даже при наличии CRUD-права на сущность. Настроив CRUD-права роли, не забудьте добавить хотя бы одно правило доступа к записям (например, «Все записи»).
Типы правил
| Тип | Что открывает | Пример |
|---|---|---|
| Все записи | Всю сущность без построчной фильтрации | Операторы поддержки видят все заявки |
| Свои записи (created_by) | Только записи, созданные самим пользователем | Сотрудник видит только свои обращения |
| Поле = атрибут пользователя | Записи, где выбранное поле совпадает с атрибутом пользователя (ID пользователя, ID подразделения, ID компании) | department_id записи = подразделение пользователя: каждый отдел видит только свои записи |
| Массив-поле содержит меня | Записи, где поле-список содержит атрибут пользователя | Поле assignees содержит ID пользователя: исполнители видят назначенные на них задачи |
Для типов «Поле = атрибут» и «Массив-поле содержит меня» указываются два параметра: поле записи и атрибут пользователя (ID пользователя / ID подразделения / ID компании).
Типовые конфигурации
Служба поддержки (сущность «Заявки»):
| Роль | Операция | Правило |
|---|---|---|
| Оператор | Чтение | Все записи |
| Оператор | Редактирование/Удаление | Массив-поле assignees содержит ID пользователя |
| Сотрудник | Чтение | Свои записи (created_by) |
Операторы видят всю очередь, но менять могут только свои назначения; заявители видят только собственные обращения.
Междепартаментный справочник (сущность «Документы»):
| Роль | Операция | Правило |
|---|---|---|
| Все роли | Чтение | Поле department_id = ID подразделения пользователя |
| Руководитель | Чтение | Все записи |
Каждый отдел работает со своими документами, руководство видит всё.
Что подчиняется правилам
Правила применяются везде, где читаются записи сущности:
- списки и карточки записей в интерфейсе;
- отчёты — в том числе выгрузки по расписанию (выполняются с правами владельца отчёта);
- REST API.
Задачи бизнес-процессов — особый случай: их видимость определяется назначением (исполнитель, кандидатные роли/группы/подразделения), а полностью неназначенная задача видна всем как «общая очередь». Подробнее — в разделе Процессы и задачи.
Смотрите также
- Пользователи, группы, роли — CRUD-права на уровне типа записи
- Обзор конструктора сущностей