Twig角色检查为重定向

时间:2018-09-16 09:11:17

标签: symfony security twig roles symfony4

当我尝试使用is_granted()检查Twig中的用户角色时,如果不返回布尔值,则只需重定向到登录路径即可。

{% if is_granted('ROLE_SUPER_ADMIN') == true %} # without == true tested.
        <a href="{{ path('foo_bar') }}">Foo Bar Link</a>
{% endif %}

Symfony:4.1

1 个答案:

答案 0 :(得分:0)

更换身份验证器后问题解决了

更改前:

 $isPasswordValid = $this->encoder->isPasswordValid($user, $token->getCredentials());
 if ($isPasswordValid) {
        return new UsernamePasswordToken($user, $user->getPassword(), $providerKey, $user->getRoles());
 }

,然后将其更改为:

 $isPasswordValid = $this->encoder->isPasswordValid($user, $token->getCredentials());
 if ($isPasswordValid or $token->getUser() instanceof User) {
        return new UsernamePasswordToken($user, $user->getPassword(), $providerKey, $user->getRoles());
 }

我将$token->getUser() instanceof User附加到条件中。