0
  • UserInterfaceを実装するUserエンティティを作成しました。全部大丈夫。
  • ロールと権限を管理する2つの補助テーブルを作成しました(各ロールにはいくつかの権限があります)。

したがって、私のエンティティは次のとおりです。

ユーザー->には1つの役割があります(1つの役割、この役割の由来は--->)

役割->役割の名前だけ

権限->権限の名前だけ

RolePermission- >ロールと権限の間に関係を作成します。

私がする必要があるのは、現在ログに記録されているユーザーが持っている権限を取得することです:これを行う方法は?最初にユーザーの役割を探し、権限が持つRolePermissionを調べます。

これは問題ありませんが、この権限を取得したら、TWIGに送信する必要があります。

私はこれを手動で行うことができ、すべて$this->renderのアプリにそれらのアクセス許可を配列に送信しますが、最善の解決策ではないと思います(怠惰な...)。

TWIGテンプレートをレンダリングするたびに、このデータ(アクセス許可のある配列)を送信することはできますか?どのように?

編集:

この質問は、ログに記録されたユーザーに関連付けられた情報を取得することに関するものですが、TWIG(is_granted)での役割を確認することについてではありません。

4

3 に答える 3

1

このようなデータベーススキーマを想定しています...

[table User] --ManyToOne--> [table Role] --OneToMany--> [table Permission] 

...次のことを試すことができます。

{% for permission in app.user.role.permissions %}
    {{ permission.name }}
{% endfor %}
于 2012-10-16T13:54:33.560 に答える
0

多くの調査の後、私のニーズのために、私は最終的に戻ってきて、すべてのアクセス許可を配列します->render

于 2012-10-23T13:25:50.037 に答える
0

Twig では、is_granted()関数を使用して、現在のユーザーが特定のロールを持っているかどうかを確認します。

{% if is_granted('ROLE_ADMIN') %}
    {# output stuff for an admin #}
{% endif %}

現在のユーザーのロールを取得する場合は、次のようにします。

{% for role in app.user.roles %}
    {# do what you want with the role #}
{% endif %}
于 2012-10-16T13:32:21.323 に答える