2015-09-12 3 views
0

Я работаю с с Symfony 2.7 и FOSUserBundle 2,0Запретить доступ к ROLE_ADMIN Symfony

Что я хочу, чтобы разрешить доступ к/админу ROLE_ADMIN пользователя, но отказать ему другие пути.

# app/security.yml 

access_control: 
    - { path: ^/$, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/register, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/resetting, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/, roles: ROLE_USER } 
    - { path: ^/admin, roles: ROLE_SUPER_ADMIN } 

role_hierarchy: 
    ROLE_USER:  ROLE_USER 
    ROLE_ADMIN:  ROLE_ADMIN 

Я думал о php app/console fos:user:demote admin ROLE_USER но ROLE_USER является роль по умолчанию FOSUser, поэтому каждый раз администратор подключается, ROLE_USER возвращается в дополнение к ROLE_ADMIN.

Как это сделать?

PS: Я сейчас удалю, как только модератор увидит это, но ... Спасибо заранее!

+1

сделать другую роль и добавить его всем пользователям, кроме администратора. – malcolm

+0

Да, это выглядит довольно логично. Как я могу это сделать, пожалуйста? Любая ссылка? Любая подсказка? – Leogout

ответ

1

В этом случае ROLE_ADMIN как нет доступа к ROLE_MANAGER

access_control: 
    - { path: ^/$, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/register, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/resetting, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/roles: ROLE_MANAGER } 
    - { path: ^/admin, roles: ROLE_ADMIN } 

role_hierarchy: 
    ROLE_USER:  
     - ROLE_USER 
    ROLE_MANAGER:  
     - ROLE_USER 
    ROLE_ADMIN:  
     - ROLE_ADMIN