我在我的网站上有多个用户角色。一些控制器基于用户角色有访问限制。
我还有一个菜单(基于 KnpMenuBundle),我需要只包含对已登录用户可访问的条目。
目前,我决定按以下方式过滤项目:
1. 对所有受保护路由添加一个新选项
2. 在菜单构建期间将当前用户角色与该选项匹配。
我试图找出Symfony中是否存在这样的功能(我的意思是在路由设置中定义角色限制),但我没有找到类似的东西。
所以我的问题是:
1. 如何基于用户角色过滤菜单项?(也许已经有了这样的功能?)
如果上一个问题的答案是“否”,那么:
2. 我如何构建这样的过滤机制? 正如我已经提到的,在这种情况下,我决定添加一个新选项,那么最好的做法是什么?
我还有一个菜单(基于 KnpMenuBundle),我需要只包含对已登录用户可访问的条目。
目前,我决定按以下方式过滤项目:
1. 对所有受保护路由添加一个新选项
roles
:例如 roles: [ROLE_ADMIN, ROLE_MANAGER]
2. 在菜单构建期间将当前用户角色与该选项匹配。
我试图找出Symfony中是否存在这样的功能(我的意思是在路由设置中定义角色限制),但我没有找到类似的东西。
所以我的问题是:
1. 如何基于用户角色过滤菜单项?(也许已经有了这样的功能?)
如果上一个问题的答案是“否”,那么:
2. 我如何构建这样的过滤机制? 正如我已经提到的,在这种情况下,我决定添加一个新选项,那么最好的做法是什么?
isGranted
或denyAccessUnlessGranted
)。 如果我成功在路由器设置中添加角色限制,那么我可以统一执行此类检查。 - Vasily