0
  • 我创建了一个实现 UserInterface 的用户实体。一切安好。
  • 我创建了两个辅助表,管理角色和权限(每个角色都有一些权限)。

所以,我的实体是:

用户->有一个角色(一个角色,这个角色来自--->)

角色-> 只是角色的名称

权限-> 只是权限的名称

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

在 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 回答
0

经过大量研究,并且由于我的需要,我终于返回并在每个->render

于 2012-10-23T13:25:50.037 回答