Скрытие элементов меню администратора Sonata по ролям

Я много читал и пробовал примеры, но до сих пор не могу разобраться с РОЛЯМИ 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

person Masinde Muliro    schedule 10.07.2014    source источник
comment
просто введите контекст безопасности в свой класс меню, тогда вы можете использовать $context->isGranted('ROLE_USER')   -  person Rufinus    schedule 11.07.2014
comment
Меню динамически генерируются сонатой.   -  person Masinde Muliro    schedule 12.07.2014
comment
stackoverflow.com/questions/22336623/   -  person Rufinus    schedule 12.07.2014