3.0 KiB
Доступ по ролям
Единый механизм платформы для разграничения по ролям: задаётся общее значение для всех ролей плюс исключения для конкретных ролей. Один и тот же формат значения у четырёх ключей — каждый на своём владельце:
| Ключ | Владелец | Смысл |
|---|---|---|
userVisible |
элемент формы | пользовательская видимость элемента |
view |
реквизит формы | право просмотра |
edit |
реквизит формы | право редактирования |
use |
команда формы | доступность команды |
Ключ необязателен: его отсутствие = полный доступ для всех ролей.
Значение
Две формы (одинаковы для всех четырёх ключей):
Скаляр true / false — общее значение для всех ролей, без исключений:
{ "input": "Поле", "userVisible": false }
Объект { "common": <bool>, "roles": { "ИмяРоли": <bool>, … } } — общее значение common плюс явные исключения по ролям:
{ "name": "Реквизит",
"edit": { "common": false, "roles": { "ПолныеПрава": true } } }
Роль, не указанная в roles, наследует common. Указанная — задаёт явный true/false (может и совпадать с common).
Имя роли
Ключи в roles — имена ролей конфигурации (ПолныеПрава, Бухгалтер, …).
Примеры
Элемент скрыт у всех пользователей:
{ "input": "Комментарий", "userVisible": false }
Реквизит не виден никому и редактируется только одной ролью:
{ "name": "СуммаБонуса",
"view": false,
"edit": { "common": false, "roles": { "ПолныеПрава": true } } }
Поле доступно для просмотра всем, но редактируемо только администратору:
{ "name": "Статус",
"view": true,
"edit": { "common": false, "roles": { "Администратор": true } } }
Команда недоступна по умолчанию, разрешена только бухгалтеру:
{ "name": "ПровестиЗакрытие",
"use": { "common": false, "roles": { "Бухгалтер": true } } }
Обратный случай — доступно всем, кроме одной роли:
{ "name": "РедактироватьЦену",
"edit": { "common": true, "roles": { "Кладовщик": false } } }