symfony1 - 更新后 symfony sfGuardUser hasCredential 生效

标签 symfony1 sfguard

我正在使用 symfony 1.4 和 sfGuardDoctrinePlugin,我已经安装并设置好了,但我遇到以下问题:

如果我以管理员身份登录并更新用户的权限,该用户必须注销然后重新登录才能获得新添加的凭据/权限。

有解决办法吗?

我不确定修复这个问题有多容易。当用户登录时,我认为他们的凭据会被添加到他们的 session 属性中。因此,当管理员更新他们的凭据时,他们的 session 仍然持有旧凭据。这意味着对 hasCredential 的任何调用都不是“实时”的。

谢谢

最佳答案

这将为您的应用程序的每个请求添加额外的查询。您可以通过 $user->getSfGuardUser()->refresh(true) 强制更新凭据,这将重新加载实体及其所有关系(及其权限)。

关于symfony1 - 更新后 symfony sfGuardUser hasCredential 生效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3760200/

相关文章:

php - Bash 补全 symfony

database - Symfony 1.4 在保存之前根据数据库条目检查表单值

php - 如何使用 symfony 1.4 修改生产数据库的结构

mysql - Doctrine :构建模式忽略唯一键

php - 使用 sfDoctrineGuardPlugin 分离前后端用户

php - 如何在 symfony 中的 sfGuard session 超时时调用自定义函数

postgresql - symfony 不喜欢带有 :build-schema Doctrine 的 PostgreSQL

php - 如何将用户添加到 sfguard

session - 如何在 Symfony 操作中获取 session ID?