无法检查 Symfony2 twig 中新添加的角色
Can not check new added role in Symfony2 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
。
这个很好用,我收到 'user' 个字
{% if is_granted('ROLE_USER') %}'user'{% else %}''{% endif %}
即使我以发布者身份登录,这个也不起作用(始终为空字符串)
{% if is_granted('ROLE_PUBLISHER') %}'publisher'{% else %}''{% endif %}
是否有可能用户有两个角色 ROLE_USER
和 ROLE_PUBLISHER
而 twig 总是检查第一个角色?
是的,我没看错,用户有两个角色,twig 一直在检查第一个。所以解决方案是:
{% set user_role = '' %}
{% for user in app.user.roles %}
{% if user == 'ROLE_PUBLISHER' %}
{% set user_role = 'publisher' %}
{% endif %}
{% endfor %}
在 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
。
这个很好用,我收到 'user' 个字
{% if is_granted('ROLE_USER') %}'user'{% else %}''{% endif %}
即使我以发布者身份登录,这个也不起作用(始终为空字符串)
{% if is_granted('ROLE_PUBLISHER') %}'publisher'{% else %}''{% endif %}
是否有可能用户有两个角色 ROLE_USER
和 ROLE_PUBLISHER
而 twig 总是检查第一个角色?
是的,我没看错,用户有两个角色,twig 一直在检查第一个。所以解决方案是:
{% set user_role = '' %}
{% for user in app.user.roles %}
{% if user == 'ROLE_PUBLISHER' %}
{% set user_role = 'publisher' %}
{% endif %}
{% endfor %}