symfony2安全角色

时间:2012-03-07 20:25:35

标签: security symfony

我想在security.yml文件中执行此操作:

access_control:
    - { path: ^/admin, roles: ROLE_ADMIN }
    - { path: ^/admin, roles: ROLE_EMPLEADO}

这意味着我希望有2个角色访问相同的url模式。

我所做的不起作用,它总是只向ROLE_ADMIN授予权限,当我使用ROLE_EMPLEADO访问相同的URL时,它表示拒绝访问。

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:3)

您应该创建角色层次结构(请参阅http://symfony.com/doc/2.0/book/security.html#hierarchical-roles

security:
  roles_hierarchy:
    ROLE_EMPLEADO: ROLE_ADMIN

这基本上意味着角色为ROLE_EMPLEADO的用户也有角色ROLE_ADMIN然后就足以说:

access_control:
    - { path: ^/admin, roles: ROLE_ADMIN }

答案 1 :(得分:2)

在这里你是如何做到的:

- { path: "^/admin", role: ["ROLE_ADMIN", "ROLE_EMPLEADO"] }

这将允许两个角色访问相同的URL。