A.7. permissions.xml

Файлы данного типа используются в блоке Web Client для регистрации специфических разрешений пользователей.

Расположение файла задается в свойстве приложения cuba.permissionConfig. При создании нового проекта в Studio, она создает файл web-permissions.xml в корневом пакете модуля web, например modules/web/src/com/company/sample/web-permissions.xml.

Схема XML доступна по адресу http://schemas.haulmont.com/cuba/7.2/permissions.xsd.

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

permission-config - корневой элемент.

Элементы permission-config:

  • specific - описатель специфических разрешений.

    Элементы specific:

    • category - категория разрешений, используется для группировки в экране управления разрешениями роли. Атрибут id используется как ключ для получения локализованного названия категории.

    • permission - именованное разрешение. Атрибут id используется для получения значения разрешения методом Security.isSpecificPermitted(), а также как ключ для получения локализованного названия разрешения для отображения в экране управления разрешениями роли.

Пример:

<permission-config xmlns="http://schemas.haulmont.com/cuba/permissions.xsd">
    <specific>
        <category id="app">
            <permission id="app.payments.exportTransactionsToPdf"/>
            <permission id="app.orders.modifyInvoicedOrders"/>
        </category>
    </specific>
</permission-config>

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

permission-config.app = Demo application permissions
permission-config.app.payments.exportTransactionsToPdf = Export transactions to pdf
permission-config.app.orders.modifyInvoicedOrders = Modify invoiced orders