У меня есть работающая установка SonataAdminBundle, это означает, что мой администратор хорошо защищен и не может быть доступен для простых пользователей.
- { path: ^/admin/, role: [ROLE_ADMIN, ROLE_SONATA_ADMIN] }
Я создал несколько административных разделов в бэк-офисе.
Но Я не хочу, чтобы все эти разделы были доступны для каждого администратора. Чтобы объяснить немного, мой сайт позволит создавать собственные сайты. Поэтому я не хочу, чтобы администратор веб-сайта имел доступ ко всей информации о веб-сайтах. Поэтому мне нужно ограничить некоторые части администратора только супер-администратором.
Для этого я попытался ограничить доступ к одному из разделов только супер-администратором
- { path: ^/admin/app/site/, role: [ROLE_SUPER_ADMIN]}
Вот моя иерархия ролей
role_hierarchy:
ROLE_ADMIN: [ROLE_USER, ROLE_SONATA_ADMIN]
ROLE_SUPER_ADMIN: [ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]
SONATA:
- ROLE_SONATA_PAGE_ADMIN_PAGE_EDI
Проблема в том, если я создаю нового пользователя с моей учетной записью супер-администратора и дам ему ROLE_ADMIN. Затем этот пользователь все еще может получить доступ к моему разделу admin/app/site/*
, поэтому, очевидно, он не работает, и я не могу понять, почему.
РЕДАКТИРОВАТЬ: У меня есть чувства, что это не может быть сделано без использования ACL .. .но мне не очень нужен ACL ...