想请教下PHP一般权限设置
用户表某个用户User对应一个字段role(保存形式 1,2)
对应的栏目表 1 站点设置 2 后台设置 3 修改密码
$allmu ="这里是查出栏目表所有的栏目";
如果我想判断权限 in_array('User用户role保存的值',$allmu);这样行不行的通
或者高手们 能不能说说自己的思路~~~~~~~多谢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(10)
aco,aro:将权限设计成树状,便于扩展。
rbac,早就有很成熟的解决方案了
就是这样的,查询出这个用户所有角色中包含的所有栏目。
我的设计原理
权限表:ID,权限名称(EN),名称(CN),父ID,提示说明,排序
用户组:ID ,名称,权限ID(1,2,3,4,5,6...)
程序判断:
获取当前页面的权限方法。例如 Admin/Login/dologin 分别是三个方法。查找用户对应的用户组存放的权限ID,匹配上述三个方法。 查找是否存在权限提示信息。没有则缺省信息。
对php来说,要做权限一般就是各种操作给予一个不重复的id作为权限值,再整张表保存用户对应有哪些权限值,user-role-权限值,role-权限值 k-v push到表作为权限定义。
查询权限就是对当前栏目取得其权限id,查下当前用户对应权限表里有没有这个值,直接select 。。。 from role-权限表 where xxx=当前用户对应角色 and 权限=当前权限id,查到就是有权限,查不到就是没呗,不用in_array
如果用常量的话 是不是用那个2进制进行比对
如果不是2进制 那应该怎么做呢~
根据工作经验来说, 最好是用常量当权限名, 判断它真假.
if($allmu[role])
echo $allmu[role];
}
通常思路都是这样的, 这样是可以工作的啦.