Ролевые разрешения

Ролевые разрешения позволяют осуществлять тонкий контроль над тем, какие ресурсы должны быть доступны для пользователей и групп пользователей. Разрешения предоставляются путем назначения пользователю Сегментов и Ролей. Каждый сегмент определяет подмножество контекстов, для которых могут быть предоставлены разрешения. Роль указывает, какие разрешения предоставлять для объектов в Сегменте.

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

Сегмент

Сегмент - это список контекстов и контекстных масок, определяющих подмножество контекстов, для которых будут применяться разрешения. Каждый сегмент может наследовать определения от другого сегмента, что позволяет управлять различными уровнями разрешений.

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

  • users

  • пользователи.*

  • пользователи.роль.*

  • users.role.devices.*

  • users.admin.devices.*

Каждая запись необходима для включения устройств в сегмент. Например, users.* может быть включен в сегмент, только если users уже является частью сегмента.

Роли

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

  • Тип контекста: тип контекстов, к которым будут применяться разрешения, например, device.virtual применяет разрешения к контекстам типа "device.virtual".

  • Тип сущности: тип сущностей контекста, к которым будут применены разрешения, например, All указывает, что разрешение будет применено ко всем сущностям указанного типа контекста.

  • Entity: имя контекстной сущности, к которой будут применены разрешения, например, All указывает, что разрешение будет применено ко всем сущностям указанного типа.

  • Исключения - вложенная таблица, указывающая сущности, для которых данное разрешение не будет применяться.

    • Тип сущности: тип контекстной сущности, к которой будет применено разрешение, например, Function указывает, что разрешение не будет применено к сущности типа "Function".

    • Entity: имя контекстной сущности, к которой будут применены разрешения, например, Calculate указывает, что функция "Calculate" будет исключена из применения этого разрешения.

  • Разрешения: тип разрешений, которые будут применены, например, All дает разрешения на чтение, запись и выполнение для пользователей указанных сущностей.

Назначение разрешений пользователям

Для того чтобы предоставить пользователю доступ ко всем виртуальным устройствам, запретив при этом доступ к функции Calculate, в свойствах пользователя необходимо применить созданные выше Сегмент и Роль. На вкладке Ролевые разрешения для целевого пользователя добавьте строку и укажите следующие значения:

  • Контекстная маска или Сегмент: сегменты.<имя сегмента, созданного выше>, чтобы указать вышеуказанный сегмент.

  • Роль: roles.<имя созданной выше роли> для указания указанной выше роли.