Symfony用户更新角色的错误或错误

时间:2018-07-25 14:56:46

标签: symfony caching

这次,我在管理用户角色的项目中遇到了一个奇怪的错误。

我安装了EasyAdmin捆绑软件,可以在其中管理用户的角色。因此,我以有权访问EasyAdmin的用户身份登录(在本例中为ROLE_ADMIN)。除了该角色外,我还有其他几个角色,其中一个叫做ROLE_SUPERSUSER,用户可以在其中编辑2个字段,其余用户无权编辑它们。

因此抛出EasyAdmin,我从自己中删除了ROLE_SUPERSUSER,这就是问题的摘要。如果您具有ROLE_SUPERSUSER,如果我尝试从配置文件访问编辑区域,则可以编辑此字段,但是由于我已将此角色从我自己身上删除,因此希望不要在那儿观看此字段。而是在屏幕上显示错误。

如果我仅注销并再次登录,则该问题已解决。但是很明显,当我更改角色时,我不能强迫用户注销并登录。

enter image description here

我想问题出在缓存上,但是我没有找到解决方法。

2 个答案:

答案 0 :(得分:0)

Symfony角色默认添加到身份验证中,因此您必须重新登录才能使此更改生效。

您可以在security.yml中进行更改。

security:
    always_authenticate_before_granting: true

答案 1 :(得分:0)

多亏了KNPUniversity,我可以找到一个解决方案。

解决方案遍历会创建一个侦听器,该侦听器会在每个控制器之前更新用户。

我从这些链接中得到了想法:

https://github.com/symfony/symfony/pull/24331

请特别注意以下链接:

https://github.com/symfony/symfony/issues/12025#issuecomment-219723819