假设在我的系统中有四个用户角色-
1. ROLE_SUPER_ADMIN
2. ROLE_ADMIN
3. ROLE_EDITOR
4. ROLE_AUTHOR
字符串
现在想想,一个用户有角色ROLE_PROCEDOR。他可以访问一个特定的文档,但没有其他用户可以访问它。所以我想只允许用户谁拥有ROLE_AUTHOR
。我得到了一些解决方案时,搜索,其中有像is_granted('ROLE_AUTHOR')
,但这返回一个层次结构的结果。因为在我的配置文件中,我设置层次结构。所以我怎么能给予权限只有ROLE_AUTHOR
用户。
3条答案
按热度按时间nkhmeac61#
您可以检查用户是否具有该角色。
字符串
型
ffvjumwh2#
你可能把用户角色存储在你的用户实体中,所以你应该只需要调用你的角色字段的getter(即:getRoles())并检查它。
r7s23pms3#
请注意,这里接受的答案没有考虑角色层次结构。它只检查分配的特定角色,而不是可能由配置继承的角色。
下面是最好的代码(用于控制器)。
字符串
来源:https://symfony.com/doc/current/security.html#roles