2012-03-07 82 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