FosUserBundle:具有2个或更多角色的访问控制?

时间:2013-12-03 14:02:59

标签: symfony fosuserbundle access-control

我在我的Symfony2项目中使用FosUserBundle。我为自定义ROLE_VALIDE添加了一条规则来限制/user之类的路径。它适用于具有此角色的用户。

问题是我还希望管理员能够访问此路径。 我已经使用ROLE_ADMINROLE_ADMIN + ROLE_VALIDE两个角色进行了测试,但我有403错误页面。

有没有办法在access_control中添加多个角色?

access_control:
    - { path: ^/admin, role: ROLE_ADMIN }
    - { path: ^/user, role: ROLE_VALIDE }

1 个答案:

答案 0 :(得分:1)

security.yml中的角色层次结构怎么样?

doc: http://symfony.com/doc/current/book/security.html#hierarchical-roles

role_hierarchy:
    ROLE_USER:        [ROLE_USER]
    ROLE_VALIDE:      [ROLE_USER, ROLE_VALIDE]
    ROLE_ADMIN:       [ROLE_USER, ROLE_VALIDE, ROLE_ADMIN]

有了这个,如果路由等待ROLE_VALIDEROLE_ADMIN就可以,因为其中有ROLE_VALIDE