首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检查未登录的用户是否具有角色?

如何检查未登录的用户是否具有角色?
EN

Stack Overflow用户
提问于 2012-03-03 03:56:49
回答 1查看 1.1K关注 0票数 2

在这种情况下,我需要检查未登录用户的角色。

我最初只是简单地查询users表的roles字段,看看是否包含有问题的角色,但这并没有考虑角色的层级结构。例如,如果用户被授予ROLE_ADMIN权限,他们也将拥有ROLE_USER权限。但是,您不会在数据库中看到ROLE_USER,因为在本例中它包含在ROLE_ADMIN中。

我对Symfony2的安全机制的内部工作原理有点不熟悉--我想为用户“模拟”一个令牌(基于他们的用户名),但我不确定怎么做,或者这是否可能。我一直在研究安全组件,但还没有找到解决方案。

是否可以检查未登录用户的角色?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-03 08:15:06

要获取用户拥有的角色列表,请查看以下代码

代码语言:javascript
复制
use Symfony\Component\Security\Core\Role\Role;
use Symfony\Component\Security\Core\Role\RoleHierarchy;

//....
$roleHierarchy = new RoleHierarchy($this->container->getParameter('security.role_hierarchy.roles'));
$userRoles = array(new Role('ROLE_ADMIN')); // Or $securityContext->getToken()->getRoles()
$reachableRoles = $roleHierarchy->getReachableRoles($userRoles);

通知:这些方法从Symfony 4.3开始就被弃用了

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9539559

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档