php - 怎么把权限管理细分到数据上
迷茫
迷茫 2017-04-10 18:05:33
[PHP讨论组]

目前我使用的权限管理是普通的角色,菜单,用户模式,也就是说最低能把权限限制到菜单节点上。
现在有这样的需求:
四种角色 :超管--区域经理--门店经理--员工
这几个角色都可以管理会员。但是管理的方式不一样。
1:查看会员。 四种角色都可以,但是查看范围不一样,超管可以查看所有,区域经理可以查看旗下的门店经理添加的会员和门店经理下面员工添加的会员的综合。门店经理能查看自己添加的会员和旗下员工添加的会员总和。员工只能查看自己添加的会员。
像上面这种权限设计都哪些好方法?

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(2)
高洛峰

像这种具有层级关系的,重点在于建立父级与子级上的关联,每个子级的code都是在父级code的基础上扩展。
用户表users中,可以建成这样:

id     user                           code
1      超管                           00001
2    A区域经理                        0000100001
3    B区域经理                       0000100002
4    A区域下的A1门店经理             000010000100001
5    A区域下的A2门店经理             000010000100002
6    A区域下的A1门店经理下的A11员工  00001000010000100001
7    A区域下的A1门店经理下的A12员工  00001000010000100002
...

而会员表vip则是

id        c_uid(创建人)
1            4
2            7
3            5
4            6
5            6

当A区域下的A1门店经理(id=4,code=000010000100001)登录时,要获取旗下的会员就可以这样写:

select * 
  from users t1 
    left join vip t2 on t1.id=t2.c_uid 
  where t1.code like concat('000010000100001','%');
黄舟

如果这需求没有那么容易变动(查看范围变动),我建议是写在代码上。数据访问层上对接受的不同角色返回不同的数据集与检验权限判断。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号