我想限制一些路由被所有角色(SUPER_ADMIN,包括ADMIN)访问,除了(ROLE_CUSTOM)
其中ROLE_CUSTOM是为指定路由创建的自定义角色。
唯一可以访问该路由的角色是(ROLE_CUSTOM)
我想通过security.access_control来控制这个。
我知道我可以使用is_grant函数,但我想从security.access_control控制它。
我怎样才能做到这一点?
角色很简单,基本上是您根据需要创建和使用的字符串,因此ROLE_SUPER_ADMIN
和ROLE_ADMIN
已经是您创建的自定义角色。然后一切都取决于你的角色层次(参考):
security:
role_hierarchy:
ROLE_CUSTOM: ROLE_USER
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: [ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]
允许你保护URL模式的用户与ROLE_CUSTOM
只是做以下(参考):
security:
access_control:
- { path: ^/exclusive-path$, role: ROLE_CUSTOM }
准备好了!只有ROLE_CUSTOM
用户才能访问/exclusive-path
路径