zend框架如何在提交动作时重新加载会话。
用户可能拥有多个用户级权限,
我的表格包含复选框中的用户权限,
我想重新加载当前登录网络的会话值。
示例:am admin,当前x和y用户登录到网络并进行一些活动,他们的权限是管理员,超级管理员用户权限,
我是管理员我想删除他们的超级管理员权限,如果所做的更改比这些权限更改应立即更改当前访问网站用户的用户。
如何在zend中实现这一目标。
答案 0 :(得分:0)
如果我理解正确,您似乎想要更新与角色(admin
,super-admin
等)关联的权限/权限,然后将这些更新的权限应用于具有该角色的所有用户,即使已经登录的人。
这实际上不是特定于ZF的问题。它更多地与您构建会话处理的方式有关,特别是您是否在会话中存储用户的角色/权限,是否查询db / datastore等等。
如果您只在会话中存储核心用户信息,并且您在每个请求上查询角色和权限(可能是性能最差的选项),那么您的问题就解决了。角色和权限已在数据存储区中更新,并在您查询时反映出来。
或者,如果您还在会话中存储角色和权限,则需要迭代所有活动会话,更新受新角色影响的会话中的权限。虽然这在技术上可以与基于文件的会话一起使用,但通常使用基于数据库的存储来完成会话。
如其他地方所述,Zend_Session
和Zend_Acl
是提供所有这些功能的组件。但是,核心架构的决定必须先于这些组件的实施。