除了(ROLE_CUSTOM)
之外,我想限制所有角色访问某些路由(包括SUPER_ADMIN,ADMIN)其中ROLE_CUSTOM是为指定路线创建的自定义角色。
唯一可以访问此路线的角色是(ROLE_CUSTOM)
我想从security.access_control.yml或防火墙配置中控制它。
我知道我可以使用is_granted函数,但我想从security.access_control.yml或防火墙配置控制它。
我怎样才能实现这个目标?
答案 0 :(得分:2)
角色很简单,基本上是您根据需要创建和使用的字符串,因此ROLE_SUPER_ADMIN
和ROLE_ADMIN
已经是您创建的自定义角色。 然后一切都取决于您的角色层次结构(Reference):
security:
role_hierarchy:
ROLE_CUSTOM: ROLE_USER
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: [ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]
要允许您保护ROLE_CUSTOM
用户的网址格式,只需执行以下操作(Reference):
security:
access_control:
- { path: ^/exclusive-path$, role: ROLE_CUSTOM }
就绪!只有ROLE_CUSTOM
的用户才能访问/exclusive-path
个路径。