我正在使用带有 propel ORM 和 sfGuardPlugin 的 symfony 1.31
我即将设置组和权限。 AFAIK,权限映射到凭据,并且权限可以分配给组。
我有两个问题
- 假设用户属于组 A,并且组 A 的凭据为“foobar”。当属于 A 组的用户登录时,他是否“自动”获得分配的凭据“foobar”,或者我是否必须手动将凭据添加到用户(例如在数据库中查找其组 ->权限) ?
- 假设 SF 框架根据组成员资格“自动”处理用户凭据,效果是实时的,还是用户必须在更改应用/生效之前注销/登录?
[编辑]
关于问题 1,我将不胜感激(最好是 SF 官方文档 - 如果没有的话,任何其他文档),该链接表明情况确实如此。
关于问题 2,sfSecurityUser 有 addCredentials 方法,用于在用户 session 中存储凭据。因此,我怀疑任何组成员身份更改都不是实时的,因此我要么必须强制使用注销/登录,要么可能使用事件监听器或其他东西......我是对的(还是错的)?
最佳答案
编辑:
- sfGuard Plugin Page with HTML version of Readme
- sfGuard Readme (txt) (应包含在您的插件安装目录中)
如果您正确设置 sfGuard,那么凭证将是自动的。特别是,这需要您apps/$appname/lib/$userClass.class.php
(通常是MyUser.class.php
)来扩展sfGuardSecurityUser
。设置应该在插件自述文件中。
就 2 而言,由于必须在每个请求中查询凭据,因此从用户的角度来看,它会立即发生(当然,除非您使用 ajax 来添加权限/凭据)。
关于symfony1 - Symfony sfGuardPlugin(组、权限和凭据)问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2208280/