A.3. default-permission-values.xml
Файлы данного типа используются в CUBA до версии 7.2, а также в мигрированных проектах, сохраняющих предыдущий метод расчета действующих разрешений, как описано в разделе Предыдущая реализация ролей и разрешений. |
Разрешения по умолчанию используются тогда, когда ни одна из имеющихся ролей не задаёт разрешения на конкретный экран или функциональность. Разрешения необходимы по большей части для запрещающих ролей: без этого файла пользователь с запрещающей ролью не будет иметь доступа к главному экрану и экранам фильтров.
Данный файл нужно создать в модуле 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>