9

我正在尝试使用 FOSUserBundle 更改用户的角色。问题是:如果用户同时登录,他必须重新登录才能看到新角色。

有什么解决办法吗?

4

3 回答 3

12

根据Security Configuration Reference,有一个always_authenticate_before_granting选项。没有太多关于这方面的信息,但我已经尝试过从数据库加载自定义角色并且它成功了。看起来每次您发出新请求时,安全组件都会重新加载角色。

因此,如果您想确保您的角色在您的用户会话中被刷新和重新加载,只需将此选项设置truesecurity.yml

# app/config/security.yml
security:
    always_authenticate_before_granting:  false
于 2012-11-14T20:16:26.030 回答
0

在你的控制器中试试这个:

$this->get('fos_user.user_manager')->refreshUser($user);

参见 FOS/UserBundle/Model/UserManager.php

于 2012-02-10T22:03:43.050 回答
-1

1:您必须在防火墙配置中启用 switch_role: true。2:接下来你必须允许ROLE_ADMIN的角色能够切换到另一个角色。3:只需链接到 ?_switch_role=userNameCanonical

它主要由 symfony security fos 完成,与角色切换无关。

于 2012-02-10T16:03:16.600 回答