我正在使用 sfDoctrineGuard 模块来管理我的 symfony 项目的权限。
我注意到以下行为:如果您以一个用户身份登录,然后尝试访问您没有凭据的内容,您将被告知同样多的内容并显示登录屏幕。如果您随后尝试以其他用户身份登录,您将无法:您不断收到相同的权限被拒绝错误。您似乎必须明确注销(或关闭浏览器)才能删除会话中的用户凭据,然后才能以其他用户身份重新登录。
这是预期的行为吗?还是我设置不正确?
更新。Darmen 要求提供一些代码。我没有写太多代码,而是主要做了一些配置。如果有帮助,这就是我所做的
- 根据插件的文档安装了 sfDoctrineGuard 模块。
通过编辑启用模块
config/ProjectConfiguration.class.php
:class ProjectConfiguration extends sfProjectConfiguration { public function setup() { $this->enablePlugins('sfDoctrinePlugin'); // Add this $this->enablePlugins('sfDoctrineGuardPlugin'); // Add this } }
重建模型。
backend
通过编辑保护应用程序apps/backend/config/security.yml
:default: is_secure: true
我创建了一些用户、组和权限。我将其中一个模块限制为与权限关联的用户或组,方法
perm_backend_edit
是将其添加到apps/backend/modules/book/config/security.yml
default: is_secure: true credentials: [ perm_backend_edit ]