Расширение ролей кастомным типом разрешений

Добрый день.

В текущем проекте его функциональность для пользователя (помимо безопасности платформы) зависит от доступной конфигурации хранимой в базе данных в виде JSON, далее конфигурация. JSON конфигурации поделен на секции, в каждой из которых описан доступный функционал. Конфигураций может быть несколько, каждая конфигурация может быть доступна нескольким пользователям, но пользователь может использовать только одну конфигурацию в один момент времени.

Чтобы избежать дублирования практически идентичных конфигураций (с различием в отсутствии/присутствии одной/двух дополнительных секций) хотелось бы перед тем как отдать пользователю конфигурацию иметь возможность ее обработать с проверкой доступности того или иного функционала и/или секции конфигурации используя разрешения назначенных пользователю ролей (что даст возможность получения одинаковых конфигураций для webclient, portal, front и любого стороннего клиента действующего через rest api). С функционалом все более или менее понятно - Specific разрешения ролей хранимые в permissions.xml, а вот с секциям возникает вопрос, так как секции имеют свободное наименование зависимое от того кто создает конфигурацию.

Можно ли расширить роли пользователя добавив новый тип разрешений для роли, которые будут храниться в базе данных и администратор приложения сам сможет добавлять новые разрешения?

Спасибо.

Добрый день!

В данный момент набор типов разрешений фиксирован и определяется перечислением com.haulmont.cuba.security.entity.PermissionType. Поэтому скорее всего вам необходимо создать свой механизм сбоку от стандартной security.

1 симпатия