Я начал использовать SonataAdminBundle в приложении Symfony2.1. Я разработал все классы Admin
, и теперь я хочу добавить роли для предотвращения просмотра, списка и редактирования действий для таких групп пользователей (например, пользователей, не являющихся администраторами).
Обратите внимание, что я не использую SonataUserBundle (полученный из FOSUserBundle), и я хочу использовать обработчик безопасности sonata.admin.security.handler.role
, предоставляемый сонатой: ACL слишком силен (и предоставляет много накладных расходов) для моего небольшого проекта.
Мой собственный UserBundle предоставляет класс User и Group (последний используется для указания роли каждого пользователя). Иерархия ролей предоставляется в моем файле security.yml, например:
security:
role_hierarchy:
ROLE_POST_AUTHOR: ROLE_USER
ROLE_ADMIN: [ ROLE_USER, ROLE_POST_AUTHOR]
ROLE_SUPER_ADMIN: [ ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH ]
Теперь я настроил файл config.yml, указав обработчик безопасности
sonata_admin:
security:
handler: sonata.admin.security.handler.role
официальные документы больше ориентированы на использование ACL и SonataUserBundle, поэтому я не знаю, как связать свои роли с безопасностью. yml с помощью SonataAdminBundle.
PS: Аналогичный вопрос: Роли безопасности SonataAdminBundle.