Я пытаюсь установить роли на моем сайте.
У меня есть 3 страницы администрирования:
- / администратора / пользователей
- / администратор / пакеты
- / администратор / информация
ROLE_ADMIN должен иметь доступ к этим 3 ссылкам.
ROLE_INFOS должен иметь доступ к / admin / information
ROLE_PACKAGES должен иметь доступ к / admin / packages
Мой security.php выглядит так:
# app/config/security.yml
security:
encoders:
FOS\UserBundle\Model\UserInterface: bcrypt
role_hierarchy:
ROLE_ADMIN: ROLE_USER, ROLE_INFOS, ROLE_PACKAGES
ROLE_INFOS: ROLE_INFOS, ROLE_USER
ROLE_PACKAGES: ROLE_PACKAGES, ROLE_USER
ROLE_USER: ROLE_USER
// ...
access_control:
- { path: ^/admin/paquets, role: ROLE_PACKAGES }
- { path: ^/admin/informations, role: ROLE_INFOS }
- { path: ^/admin, role: ROLE_ADMIN }
- { path: ^/accueil, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/, role: ROLE_USER }
Я хотел знать, правильный ли мой способ организации?
Кроме того, на моем сайте есть панель навигации, в которой отображаются различные вкладки в зависимости от роли пользователя
У меня есть вкладка «Управление», которая представляет собой выпадающее меню, указывающее на 3 возможные ссылки (пакеты, пользователи, информация).
Только у меня это есть в моем base.html.twig:
{% if is_granted('ROLE_ADMIN') %}
это условие показывает мне вкладку управления для администраторов. Мне бы хотелось, чтобы он отображался для каждой из упомянутых мной ролей ( ROLE_ADMIN, ROLE_INFO, ROLE_PACKAGES ).
Должен ли я сделать что-то вроде:
{% if is_granted('ROLE_ADMIN') %} or
{% if is_granted('ROLE_INFOS') %} or
{% if is_granted('ROLE_PACKAGES') %}
Спасибо за вашу помощь