我有一个网络应用程序,我有5级用户,如
现在每个用户都会有不同的目标网页或一些或多或少的标签或功能。
现在我想知道是我只将它作为一个实体,然后在不同的实体中进行角色,以便我可以简化登录过程
答案 0 :(得分:4)
您应该使用twig函数is_granted()
,让安全组件处理角色。这有一些进步,例如嵌套角色定义。您可以在http://symfony.com/doc/current/book/security.html#roles找到更多信息。
我强烈建议你这样走!
{% if is_granted('ROLE_ADMINISTRATOR') %}
Do something
{% endif %}
答案 1 :(得分:1)
这是一个如何实现它的例子
你的控制器:
public function indexAction()
{
$user = $this->container->get('security.context')->getToken()->getUser();
return $this->render('YourBundle:Page:index.html.twig', array('user_role' => $user->getRole()));
}
嫩枝:
{% if user_role == "administrator" %}
Menu 1, menu 2, menu3
{% elseif user_role == "organizationhead" %}
Menu 1, Menu 4
{% elseif user_role == "etc" %}
Menu 5
{% endif %}