所以,我的实体是:
用户 - >有一个角色(一个角色,这个角色来自--->)
角色 - >只是角色的名称
权限 - >只是权限的名称
RolePermission - >创建角色和权限之间的关系。
我需要做的是获取当前登录用户拥有的权限:如何做到这一点?首先查看用户的角色,并查看RolePermission具有哪些权限。
这没关系,但一旦获得此权限,我需要将其发送给TWIG。
我可以手动执行此操作,在应用程序的每个$this->render
发送一个数组权限,但我认为这不是最好的解决方案(懒惰...)。
每次呈现TWIG模板时都可以发送此数据(具有权限的数组)吗?怎么样?
编辑:
这个问题是关于获取与已登录用户相关联的信息,但不是要检查TWIG中的角色(is_granted)
答案 0 :(得分:1)
假设像这样的数据库模式......
[table User] --ManyToOne--> [table Role] --OneToMany--> [table Permission]
...您可以尝试以下方法:
{% for permission in app.user.role.permissions %}
{{ permission.name }}
{% endfor %}
答案 1 :(得分: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 %}
答案 2 :(得分:0)
经过大量的研究,并且由于我的需要,我终于返回并使用每个->render
中的权限进行数组