对于ROLE_ADMIN

时间:2016-04-19 16:45:43

标签: symfony authentication twig token impersonation

我遵循Symfony文档并使用以下twig帮助函数来确定用户是否正在切换角色以进行模拟。问题是,对于ROLE_ADMIN,它总是返回true。

{% if is_granted('ROLE_PREVIOUS_ADMIN') %}
    <a href="{{ path('homepage', {'_switch_user': '_exit'}) }}">Exit impersonation</a>
{% endif %}

奇怪的是,当我通过管理员的调试工具栏检查安全令牌时,我看到以下角色:

  

[ROLE_ADMIN,ROLE_SHAWMUT,ROLE_USER]

以下继承:

  

[ROLE_USER,ROLE_ALLOWED_TO_SWITCH]

那么,如果以上是此安全令牌可用的角色,为什么is_granted(&#39; ROLE_PREVIOUS_ADMIN&#39;)会返回true?

=====

这是我必须做的工作,包括使用折旧的app.security.token变量:

            {% if is_granted('ROLE_PREVIOUS_ADMIN') %}
                {% for role in app.security.token.roles %}
                    {% if role.role == 'ROLE_PREVIOUS_ADMIN' %}
                        <span class="imp-designation">{impersonating}</span>
                    {% endif %}
                {% endfor %}
            {% endif %}

=====

这是我的security.yml文件:http://pastebin.com/f04ZG4K8

0 个答案:

没有答案