2012-03-07 111 views
2

我想这样做在security.yml文件:Symfony2的安全角色

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

这意味着我想有两个角色访问相同的URL模式。

我做的没有工作,它总是只给ROLE_ADMIN权限,当我用ROLE_EMPLEADO访问相同的URL时,它说拒绝访问。

我该如何做到这一点?

回答

2

这里你是如何做到的:

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

这将允许两个角色访问s ame网址。

+0

谢谢。正是我需要的:) – 2012-03-08 14:16:58

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 } 
+0

非常感谢您的回答:),但等级角色不符合我的需求。我需要empleado成为empleado。如果我把ROLE_EMPLEADO:ROLE_ADMIN,那么empleado也是管理员,我也不会有这样的东西:如果你是empleado,打印这个,如果你是管理员,打印这个,因为empleado是两个。 – 2012-03-08 14:15:59