Роли#
Общее описание#
Роль — административная единица, с помощью которой пользователям предоставляют доступ к объектам системы и действиям над ними.
Настройте роль, чтобы определить, какие данные пользователь может просматривать и изменять, какие записи создавать и удалять, какие операции выполнять и какие состояния объектов менять. Права можно выдать сразу для объекта, ограничить отдельным элементом или настроить для конкретной привилегии.
Дополнительные ограничения доступа настраиваются отдельно и применяются в предусмотренных системой сценариях.
Список ролей доступен по пути:
Администратор > Доступ > Роли.
Система поддерживает следующие типы ролей:
Обычная роль — стандартная роль с набором привилегий;
Мастер-роль — специальная роль, позволяющая определять параметры дискретного доступа для подчиненных профилей.
Если для роли назначен параметр с типом Определяется профилем, роль должна иметь тип Мастер-роль.
Интерфейс ролей#
При открытии раздела Роли отображается окно, состоящее из двух частей:
слева — дерево групп ролей;
справа — список ролей, входящих в выбранную группу.
Если выбрать узел Все роли, в правой части отображается общий список всех ролей системы.
В списке ролей отображаются обзорные данные по роли:
код роли;
наименование;
описание;
признак
Не используется;тип;
изменивший пользователь;
дата изменения.
В этом окне данные используются как обзорные. Основная настройка роли выполняется в карточке конкретной роли.
Карточка роли#
Карточка роли открывается при переходе к конкретной роли и используется для просмотра и изменения ее параметров.
В карточке роли выполняется основная настройка прав, ограничений и дополнительных полномочий для выбранной роли.
В верхней части карточки отображаются:
код;
наименование;
группа;
тип;
описание.
Права роли#
Права роли настраиваются по административным объектам.
Это основной раздел карточки роли. Здесь настраивается доступ роли к объектам системы, их атрибутам, операциям и переходам состояний.
Права настраиваются на трех уровнях: объект администрирования, элемент объекта, конкретный атрибут или операция. Дерево выбирает область настройки, а расшифровка показывает доступные в ней привилегии. Переходы состояний настраиваются отдельно.
Объектная привилегия дает доступ к действию над администрируемым объектом. Элементарная привилегия дает доступ к атрибуту или операции элемента объекта.
Дерево администрируемых объектов содержит следующие уровни:
группа администрируемых объектов;
объект администрирования;
узел администрирования;
элемент администрируемого объекта.
Совет
По умолчанию отображаются только те администрируемые объекты, которые используются в роли. Чтобы отобразить все объекты, отключите флаг Только объекты, на которые у роли имеются права в панели фильтрации.
Для выбранного административного объекта или элемента можно задать права роли. В зависимости от контекста настраиваются:
полный доступ;
чтение;
редактирование;
добавление;
удаление;
интерактивные права;
права на переходы состояний.
Основные настройки прав означают следующее:
Настройка |
Что дает |
Когда использовать |
|---|---|---|
|
На уровне объекта предоставляет все пять типов элементарных прав и объектные привилегии. На уровне элемента предоставляет все пять типов прав для выбранного элемента. |
Когда пользователю нужен полный набор прав в пределах объекта или выбранного элемента. Права на переходы состояний выдаются отдельно. |
|
Позволяет просматривать сведения. Для атрибутов определяет их видимость. |
Когда пользователю нужно видеть данные без возможности их изменять. |
|
Позволяет изменять значения атрибутов и выполнять операции, которым назначен тип |
Когда пользователь должен изменять записи или их атрибуты. |
|
Позволяет создавать, вставлять и копировать объекты или карточки. |
Когда пользователь должен создавать новые записи или копировать существующие. |
|
Позволяет удалять данные. |
Когда пользователю разрешено удалять записи. |
|
Разрешают запуск операций интерфейса, которым назначен тип |
Когда пользователю нужно разрешить выполнение прикладных операций. Право на уровне объекта разрешает операции этого типа во всем объекте, право на уровне элемента — только в выбранном элементе. Для одной операции используйте точечное право. |
|
Разрешают конкретные направленные переходы объекта из одного состояния в другое, например |
Когда пользователь должен менять состояние объекта. Если переход запускается операцией интерфейса, выдайте оба права: право на операцию и право на соответствующий переход. |
Операции интерфейса распределяются по типам прав. Изменение значения атрибута обычно относится к Редактированию, создание и копирование — к Добавлению, удаление — к Удалению, а специальные прикладные команды — к Интерактивным правам. Фактический тип операции отображается в расшифровке прав.
Интерактивное право отвечает за запуск операции, а право на переход состояния — за разрешенное направление изменения состояния. Эти права не заменяют друг друга.
Например, для операции Отправить на согласование пользователю могут потребоваться:
право на запуск операции
Отправить на согласование;право на переход
Черновик > На согласовании.
Выдайте право на тип на уровне объекта, если одинаковый доступ нужен для большинства элементов объекта. Выдайте право на тип на уровне элемента, если область доступа нужно ограничить выбранным элементом.
Для одной конкретной операции или другой элементарной привилегии используйте точечную настройку.
При проверке точечная настройка имеет приоритет над правом на тип для элемента, а право на тип элемента — над правом на тип объекта. Для исключения из общего разрешения установите Запрещено. Такой запрет имеет приоритет над разрешением, полученным из другой роли.
Каждый тип элементарной привилегии отображается в отдельном столбце. Это позволяет массово выдавать права по типу для текущего уровня и всех вложенных элементов.
Расшифровка прав:
при выборе объекта администрирования отображается перечень типов элементарных привилегий и объектных привилегий;
при выборе элемента администрируемого объекта отображается перечень элементарных привилегий для выбранной строки.
Настройка прав на привилегии#
Вариант настройки |
Область действия |
Что сделать |
|---|---|---|
Объектная привилегия |
Действие над администрируемым объектом. |
Выберите объект и выдайте право на нужную объектную привилегию. |
Тип права на уровне объекта |
Все элементарные привилегии выбранного типа во всех элементах объекта. |
Выберите объект и выдайте право на нужный тип. |
Тип права на уровне элемента |
Все элементарные привилегии выбранного типа в выбранном элементе. |
Выберите элемент и выдайте право на нужный тип. |
Элементарная привилегия |
Конкретный атрибут или операция выбранного элемента. |
Выберите элемент, найдите привилегию и установите |
Выберите в дереве объект или элемент в зависимости от требуемой области доступа.
Откройте расшифровку прав.
Выберите объектную привилегию, тип права или элементарную привилегию.
Выдайте нужное право. Для точечного исключения установите
Запрещено.
Перевод состояний#
Раздел отображается при выборе объекта администрирования и позволяет настроить возможные переходы между состояниями.
Убедитесь, что требуемый переход заранее зарегистрирован для типа объекта.
На вкладке
Перевод состоянийвыдайте право на каждый требуемый переход. Каждое направление перехода настраивается отдельно.Если смена состояния запускается через операцию в интерфейсе, выдайте право и на эту операцию, и на соответствующий переход состояния.
После любых изменений роли в разделе Права роли, включая права на переходы состояний, выполните операцию Пересчитать индексацию привилегий для всех пользователей роли. Это завершающий шаг настройки: без пересчета изменения не попадут в эффективные права пользователей.
Администрирование универсальных характеристик#
Для разграничения доступа к универсальным характеристикам в динамически расширенных списках и карточках предусмотрены стандартные привилегии на чтение и изменение. Они именуются по системным именам УХ и имеют вид UC_<системное имя УХ>.
Примечание
id=»479l4r» Если внутри элемента администрируемого объекта отсутствуют права на чтение и изменение уже наложенных универсальных характеристик, обновите администрируемый объект.
Также определены «общие» привилегии, предоставляющие доступ сразу ко всем универсальным характеристикам класса, шаблона или типа объекта. Для ссылочных атрибутов в имени привилегии используется постфикс HL, для значимых — без него.
Список общих привилегий:
для расширенных списков:
чтение:
objAttrValue,objAttrValueHL;редактирование:
setobjAttrValue,setobjAttrValueHL;
для карточек объектных характеристик:
чтение:
sValue,sValueHL;редактирование:
setsValue,setsValueHL.
Явные настройки на уровне конкретной характеристики имеют приоритет над общими:
Сценарий |
Глобальная привилегия |
Настройка для конкретной УХ |
Результат |
|---|---|---|---|
Глобально редактирование разрешено, одна УХ запрещена |
|
|
Все УХ доступны для редактирования, кроме |
Глобально чтение запрещено, одна УХ разрешена |
|
|
Чтение всех УХ запрещено, но |
Приложения, доступные для роли#
Отображается список приложений, к которым у данной роли есть доступ.
Для каждого приложения в списке отображаются как минимум его наименование и системное имя.
Доступ к приложениям определяется привилегиями административного объекта Приложения. Выданные права на такую привилегию обеспечивают отображение приложения в меню выбора приложений.
В детализации приложения отображаются пункты меню, входящие в это приложение.
Пункты динамического меню, доступные для роли#
Отображаются пункты динамического меню, доступные пользователям с данной ролью.
Если для элемента динамического меню установлен признак Доступно, этот признак автоматически устанавливается для всех предков, начиная с корневого элемента, и для всех потомков выбранного элемента. При снятии признака он снимается для всех потомков данного пункта меню.
Профили роли#
Для выбранной роли задаются профили, в состав которых должна входить эта роль.
Раздел используется для настройки связи роли с профилями. Доступны операции включения роли в профили и удаления ее из профилей.
Пользователи роли#
Отображаются пользователи, у которых назначена данная роль.
Роль пользователю здесь не задается, а показывается, на каких пользователях она уже есть. Роли назначаются пользователям через профиль. Для каждого пользователя можно определить, от какого профиля он получил данную роль.
В списке и карточке Роли доступна операция:
Пересчитать индексацию привилегий для текущего пользователя.
Дискретный доступ#
Задаются параметры дискретного доступа для выбранной роли.
Чтобы ограничить выданную привилегию конкретными объектами или строками выборки:
Во вкладке
Дискретный доступсоздайте правило для нужного администрируемого объекта.В разделе
Значения правилазадайте типы и значения параметров правила.Перейдите во вкладку
Права роли, выдайте нужную объектную или элементарную привилегию и в полеОграничение дискретного доступавыберите созданное правило.После изменения прав выполните операцию
Пересчитать индексацию привилегий для всех пользователей роли.
Правило без привязанного к нему гранта не выдает право. Если ограничение указано у привилегии, оно проверяется в контексте объекта или строки выборки. Поэтому привилегия действует только для объектов или строк, соответствующих правилу; правила применяются, когда для объекта включен дискретный доступ. Пересчет индексации делает изменения роли доступными в эффективных правах пользователей.
Пошаговый пример настройки ограничения для роли приведен в разделе «Пример настройки ограничения в роли».
Серверные полномочия#
В разделе Серверные полномочия настраивается доступ роли к серверным возможностям JEXL.
Раздел включает следующие подразделы:
Доступ к API— настройка доступа к вызову методов API из JEXL-скриптов;Доступ к пакетам— настройка доступа к пакетам (Pkg) из JEXL-скриптов;Разрешения JEXL— настройка разрешений на использование Java/Scala-пакетов и классов в JEXL-скриптах.
Подробности по настройке этих разрешений приведены в статье Администрирование JEXL.
Доступ к API#
Чтобы настроить доступ к API:
Перейдите в раздел
Серверные полномочия > Доступ к API.Найдите нужный API.
В разделе
Права на вызов методов из JEXLвыберите методы и установите признакИмеется право.Чтобы разрешить вызов всех методов API, установите флаг
Доступны все методы API через JEXL.
Доступ к пакетам#
Доступ к пакетам (Pkg) настраивается аналогично в разделе Серверные полномочия > Доступ к пакетам.
Разрешения JEXL#
В разделе Разрешения JEXL настраивается использование Java/Scala-классов и пакетов в JEXL-скриптах.
Для выдачи прав на пакет:
укажите тип привилегии
package;в поле имени укажите полное имя пакета.
Для выдачи прав на класс:
укажите тип привилегии
class;в поле имени укажите полное имя класса.
Чтобы разрешить только отдельные методы класса, перечислите их в поле Методы в виде JSON-массива.
Если нужно разрешить все методы, кроме указанных, установите флаг Указанные методы исключающие.
Доступ к таблицам в SQL-запросах#
В разделе Доступ к таблицам в SQL-запросах настраиваются права роли на использование таблиц в SQL-запросах из JEXL.
Подробности по этой настройке также приведены в статье Администрирование JEXL.
Чтобы настроить доступ:
Перейдите в раздел
Доступ к таблицам в SQL-запросах.Найдите нужную таблицу.
Установите права с помощью чекбоксов:
Select— чтение;Update— изменение;Delete— удаление;Insert— вставка.
Права на Insert можно выдать только для таблиц в схемах:
public;aud;global_dev;global_system.
Примечание
id=»ch7wax»
Права на Select могут быть получены при наличии любой не запрещающей привилегии на администрируемом объекте, соответствующем данной таблице.
Право подписи#
В разделе Право подписи отображаются настройки, связанные с правом подписи для роли.
Доступ к складам#
В разделе Доступ к складам отображаются склады, доступ к которым предоставлен для роли.
Доступ к операциям по заказам#
В разделе Доступ к операциям по заказам отображаются операции по заказам, доступные для роли.
Доступ к проводкам по счетам#
В разделе Доступ к проводкам по счетам отображаются проводки по счетам, доступные для роли.
Групповая настройка привилегий ролей#
Выборка Групповая настройка привилегий ролей предназначена для массовой выдачи привилегий ролям от администрируемого объекта.
Выборка доступна по пути:
Администратор > Доступ > Групповая настройка привилегий ролей.
Принцип работы:
Выберите нужный администрируемый объект.
Выберите нужные роли — в панели фильтрации откройте список подбора для поля
Перечень ролей.Проставьте гранты на нужных привилегиях.
Пересчитайте индексы привилегий — выполните операцию
Пересчитать индексацию привилегийв интерфейсеПеречень ролей.
Дерево администрируемых объектов#
Уровни дерева:
группа администрируемых объектов;
объект администрирования;
узел администрирования;
элемент администрируемого объекта.
Объекты администрирования могут не входить в группу. В этом случае они считаются корневыми.
Операции дерева:
Обновить выбранный объект— обновляет выделенный объект или элемент. При обновлении сканируется исходный код, добавляются недостающие привилегии и элементы;Обновить администрируемый объект по имени— обновляет объект по указанному имени;Обновить администрируемые объекты модуля— обновляет все администрируемые объекты модуля.
Примечание
id=»vlx2yt» Классы-коллекции не имеют собственных объектов администрирования и входят в объект мастера. Для обновления настроек коллекций обновляйте администрируемый объект по имени класса-мастера.
Настройка прав#
Права для ролей отображаются в зависимости от выделенной записи в дереве:
для администрируемого объекта — объектные привилегии;
для элемента администрирования — типы элементарных привилегий и элементарные привилегии.
Колонки ролей формируются динамически по ролям, выбранным в фильтре.
Операции настройки прав:
Подобрать роли— подбирает в фильтр роли, для которых уже есть права на текущий объект или элемент.
Пользователи и профили#
В активной ячейке отображаются пользователи и профили, связанные с выбранной ролью.
Для разработчиков#
Программные проверки ниже работают с текущим пользователем сессии. Для каждой проверки можно указать, должен ли суперпользователь проходить ее автоматически: при isSuperUserHasPriv = true действует обход проверки для суперпользователя, а для строгой проверки членства или права передайте false.
Проверка роли и привилегий#
Используйте API по назначению:
API |
Что проверяет |
Важные условия выбора |
|---|---|---|
|
Наличие роли у текущего пользователя по имени |
Передайте |
|
Наличие роли у текущего пользователя по идентификатору |
Передайте |
|
Объектную привилегию текущего пользователя |
Для проверки дискретного права используйте перегрузку с объектным контекстом ( |
|
Один направленный переход между состояниями |
Обратное направление проверяется отдельно. Метод проверяет право, но не регистрирует переход. |
Параметр isNeedRuleCheck у hasObjPriv определяет проверку ограничения: при false проверяется только наличие гранта без проверки правила. Такой вызов не заменяет авторизацию действия над конкретным объектом. Если нужна проверка дискретного права, сохраняйте проверку правила и передавайте объектный контекст через соответствующую перегрузку.
Точки настройки административного контекста#
Поддерживаемые точки расширения и свойства административного контекста:
onLoadAdminMeta(): Unit— точка жизненного цикла@Event, вызываемая при загрузке административных метаданных. При переопределении обязательно вызовитеsuper.onLoadAdminMeta().acObject: NString— идентификатор администрируемого объекта выборки.acObjectItem: NStringи перегрузка с параметромisMaster: Boolean— идентификатор элемента администрирования.isAdministered: Boolean— признак применения административных метаданных.