在我的数据库中,用户有角色,每个角色都有权限。权限有两个字段权限组(如用户、帖子、评论)和权限操作(按位添加01、删除02、编辑04、批准08)。
例如,添加并批准帖子:
permission[POST_PERMISSION_GROUP]= 01 | 08 ;
我想把它存储到用户的会话中。但一旦管理员更改了用户的权限,就应该更新该用户的会话。现在我陷入了进退两难的境地,是应该在会话中缓存这些权限,还是直接从数据库中读取权限?每次用户有权访问每个页面时,都必须检查几个权限。
如果你能分享你的经历,那就太好了。
使用权限可以完成两件事:
- 检查某个用户是否具有权限
- 设置某个用户是否具有权限
为此,您需要两个功能:
check_permission($user, $permission)
set_permission($user, $permission, $allowed)
这些函数的第一个实现应该操作权限的权威来源(即可能是数据库)。
如果你没有遇到性能问题,就这样吧。如果你已经确认,检查和设置潜航时间太长,那么优化,而不是更早。