0

私は、次のような5レベルのユーザーがいるWebアプリケーションを持っています

  1. 管理者
  2. 組織責任者
  3. ローカルカンパニー長
  4. 先生
  5. 両親
  6. 学生

現在、すべてのユーザーは異なるランディング ページを持っているか、多かれ少なかれタブや機能を持っています。

ログインプロセスを簡素化できるように、それを1つのエンティティとして作成し、次に別のエンティティでロールを作成するだけであることを知りたい

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 に答える