Я много читал и пробовал примеры, но до сих пор не могу разобраться с РОЛЯМИ Symfony2 и администратором Sonata. У меня есть четыре уровня пользователей,
- Суперадмин, который в основном я разработчик
- Администратор, который является владельцем приложения. У него есть доступ ко всему, кроме управления пользователями/группами. Администратор добавляет агентство, которое получит электронное письмо с учетными данными в систему.
- Агентство, которое затем добавляет сотрудников людей (фасилитаторов), работающих над проектом.
- Фасилитаторы, являющиеся сотрудниками Агентства, которые вводят поля Записи в систему
Я хочу в Sonata Admin, чтобы:
- Фасилитаторы видят только меню управления входом
- Агентство для просмотра только меню входа и управления посредником
- Администратор, чтобы видеть только меню управления агентством, входом и фасилитатором
- SuperAdmin, чтобы видеть все остальное, включая управление пользователями и группами, созданное SonataUserBundle
Вот как выглядит мой файл security.yml
security:
role_hierarchy:
ROLE_FACILITATOR:
- ROLE_USER
- ROLE_SONATA_ADMIN
- ROLE_SONATA_ADMIN_ENTRY_EDIT
- ROLE_SONATA_ADMIN_ENTRY_LIST
- ROLE_SONATA_ADMIN_ENTRY_CREATE
- ROLE_SONATA_ADMIN_ENTRY_VIEW
- ROLE_SONATA_ADMIN_ENTRY_DELETE
ROLE_AGENCY:
- ROLE_FACILITATOR
- ROLE_SONATA_ADMIN_FACILITATOR_EDIT
- ROLE_SONATA_ADMIN_FACILITATOR_LIST
- ROLE_SONATA_ADMIN_FACILITATOR_CREATE
- ROLE_SONATA_ADMIN_FACILITATOR_VIEW
- ROLE_SONATA_ADMIN_FACILITATOR_DELETE
ROLE_OLX_ADMIN:
- ROLE_AGENCY
- ROLE_SONATA_ADMIN
- ROLE_SONATA_ADMIN_AGENCY_EDIT
- ROLE_SONATA_ADMIN_AGENCY_LIST
- ROLE_SONATA_ADMIN_AGENCY_CREATE
- ROLE_SONATA_ADMIN_AGENCY_VIEW
- ROLE_SONATA_ADMIN_AGENCY_DELETE
ROLE_SUPER_ADMIN:
- ROLE_OLX_ADMIN
- ROLE_ALLOWED_TO_SWITCHS
$context->isGranted('ROLE_USER')
- person Rufinus   schedule 11.07.2014