用户可能具有多个角色,例如, ROLE_USER, ROLE_SUBSCRIBTION_FOO, ROLE_SUBSCRIBTION_BAR
。现在具有多个角色的用户,访问始终被拒绝
- { path: ^/admin/helpdesk/foo, roles: ROLE_SUBSCRIPTION_FOO }
- { path: ^/admin/helpdesk/index, roles: ROLE_ADMIN }
角色层次
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUBSCRIBTION_FOO: ROLE_ADMIN
ROLE_SUPER_ADMIN: ROLE_ADMIN
的问题是,当用户的角色ROLE_SUBSCRIBTION_FOO
和访问/admin/helpdesk/foo
访问被拒绝:
根据他们的角色我定义访问控制列表。用户具有ROLE_ADMIN和ROLE_SUBSCRIBTION_FOO。然而,当我有
- { path: ^/admin/helpdesk/foo, roles: ROLE_ADMIN }
它的工作原理,但我需要它是
- { path: ^/admin/helpdesk/foo, roles: ROLE_SUBSCRIPTION_FOO }
不工作,howeve用户确实有作用?这是有点we。。任何想法的问题是?
你确定你正在测试的用户有'ROLE_ADMIN'而不是'ROLE_SUPER_ADMIN'吗?因为用你的实际设置,具有'ROLE_SUPER_ADMIN'的用户不具有'ROLE_SUBSCRIBTION'。 – Mick 2013-02-25 16:01:29
不,用户角色a:2:{i:0; s:10:“ROLE_ADMIN”; i:1; s:21:“ROLE_SUBSCRIBTION_FOO”;}是我正在测试的用户 – 2013-02-25 16:04:03
好吧,看起来不错。你是否检查过用户是否在会话中也有这些角色?不只在数据库中? – Mick 2013-02-25 16:25:31