0

我有一个 Web 应用程序,其中有 5 个级别的用户,例如

  1. 行政人员
  2. 组织负责人
  3. 本地公司负责人
  4. 老师
  5. 父母
  6. 学生们

现在每个用户都将拥有不同的登录页面或或多或少的标签或功能。

现在我想知道是不是我只将其作为一个实体,然后在不同实体中扮演角色,以便我可以简化登录过程

4

2 回答 2

4

您应该改用 twig 函数is_granted()并让 Security 组件处理角色。这有一些进步,例如嵌套角色定义。您可以在http://symfony.com/doc/current/book/security.html#roles找到更多信息。

我强烈建议你走这条路!

{% if is_granted('ROLE_ADMINISTRATOR') %}
    Do something
{% endif %}
于 2012-07-10T06:58:27.857 回答
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 %}
于 2012-07-10T04:18:49.060 回答