我正在尝试配置Symfony ACL:
access_control:
- { path: ^/, role: ROLE_A }
role_hierarchy:
ROLE_A: ROLE_USER
ROLE_B: ROLE_A
ROLE_ADMIN: ROLE_B
ROLE_SUPER_ADMIN: ROLE_ADMIN
所以:A
来自USER
,B
来自A
等。
问题是,当我以ADMIN
或SUPER_ADMIN
登录时,我的403
未获得授权。它仅在我被授权为A
时才有效。为什么?我在角色扩展方面做错了什么?
答案 0 :(得分:0)
据我所知,角色层次结构应该自上而下定义。所以在上面的例子中你应该有:
role_hierarchy:
ROLE_SUPER_ADMIN: ROLE_ADMIN
ROLE_ADMIN: ROLE_B
ROLE_B: ROLE_A
ROLE_A: ROLE_USER
答案 1 :(得分:0)
我想它必须是
role_hierarchy:
ROLE_SUPER_ADMIN: [ROLE_ADMIN, ROLE_B, ROLE_A, ROLE_USER]
ROLE_ADMIN: [ROLE_B, ROLE_A, ROLE_USER]
ROLE_B: [ROLE_A, ROLE_USER]
ROLE_A: ROLE_USER