在security.yml
下,我添加了名为ROLE_PUBLISHER
access_control:
- { path: ^/publisher/, roles: [ ROLE_PUBLISHER ] }
role_hierarchy:
ROLE_TC_ADMIN: [ ROLE_ALLOWED_TO_SWITCH ]
ROLE_PUBLISHER: [ ROLE_PUBLISHER_UNCONFIRMED ]
角色运行正常,它用于生产环境,但我注意到如果登录用户具有正确的角色,我无法签入twig
。
这个工作正常,我得到'用户'字
{% if is_granted('ROLE_USER') %}'user'{% else %}''{% endif %}
这个不起作用(总是空字符串),即使我以发布者身份登录
{% if is_granted('ROLE_PUBLISHER') %}'publisher'{% else %}''{% endif %}
用户是否可能有两个角色ROLE_USER
和ROLE_PUBLISHER
,并且twig总是会检查第一个角色?
答案 0 :(得分:0)
是的,我说得对,用户有两个角色,而twig一直在检查第一个角色。所以解决方案是:
{% set user_role = '' %}
{% for user in app.user.roles %}
{% if user == 'ROLE_PUBLISHER' %}
{% set user_role = 'publisher' %}
{% endif %}
{% endfor %}