无法在Symfony2 twig中检查新添加的角色

时间:2015-06-26 12:02:44

标签: symfony twig

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_USERROLE_PUBLISHER,并且twig总是会检查第一个角色?

1 个答案:

答案 0 :(得分:0)

是的,我说得对,用户有两个角色,而twig一直在检查第一个角色。所以解决方案是:

{% set user_role = '' %}
{% for user in app.user.roles %}
    {% if user == 'ROLE_PUBLISHER' %}
        {% set user_role = 'publisher' %}
    {% endif %}
{% endfor %}
相关问题