A.3. default-permission-values.xml

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

Данный файт Studio не создаёт автоматически, его нужно создать вручную в модуле core.

Расположение файла задается в свойстве приложения [cuba.defaultPermissionValuesConfig]. Если свойство не задано, будет использован файл платформы по умолчанию - cuba-default-permission-values.xml.

Схема XML доступна по адресу http://schemas.haulmont.com/cuba/default-permission-values.xsd.

Рассмотрим структуру файла.

default-permission-values - корневой элемент. Он содержит всего один вложенный элемент - permission.

permission - само разрешение: определяет, на какой тип объектов накладывается разрешение или запрет.

У permission есть три атрибута:

  • target - конкретный объект разрешения. Формат представления объекта зависит от типа разрешения: для экранов это значение их id, для операций над сущностями - id сущности с типом операции, к примеру, target="sec$Filter:read", и т.д.

  • value - значение разрешения. Может иметь значения 0 или 1 (запрещен или разрешен соответственно).

  • type - тип объекта разрешения:

    • 10 - экран,

    • 20 - операция над сущностью,

    • 30 - атрибут сущности,

    • 40 - специфическое разрешение на произвольную именованную функциональность,

    • 50 - компонент UI.

Пример:

<?xml version="1.0" encoding="UTF-8"?>
<default-permission-values xmlns="http://schemas.haulmont.com/cuba/default-permission-values.xsd">
    <permission target="dynamicAttributesConditionEditor" value="0" type="10"/>
    <permission target="dynamicAttributesConditionFrame" value="0" type="10"/>
    <permission target="sec$Filter:read" value="1" type="20"/>
    <permission target="cuba.gui.loginToClient" value="1" type="40"/>
</default-permission-values>