Привет
Я хочу или, скорее, должен контролировать ограничения для некоторых действий и контроллеров через настройки базы данных, как лучше всего выполнить эту работу?
Какова моя цель: мне нужно создать решение, в котором будет много групп пользователей (хранящихся в БД) и они будут полностью динамическими (создаются и удаляются из админки). Разрешения должны быть унаследованы для подгрупп, поэтому, если у пользователя есть роль EditorsChief
, он также может выполнять действия, разрешенные для всех Editor
. Я не могу просто аннотировать действие/контроллер с помощью @Restrict({"EditorsChief", "Editor"})
, потому что они не существуют (должны создаваться на лету с помощью панели администратора).
Моя первая мысль — использовать @Dynamic
контроллер и группировать ограничения с отдельными обработчиками, что, конечно, требует жесткого кодирования некоторых из них. Это не так уж и плохо - при некотором внимании можно установить неплохую схему, (т.е. назвав обработчики по соглашению: handlerControllerAction
, handlerControllerOtherAction
...
Что ты думаешь ? Я иду в правильном направлении?