博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
thinkphp集成系列之rbac的升级版auth权限管理系统demo
阅读量:7024 次
发布时间:2019-06-28

本文共 1246 字,大约阅读时间需要 4 分钟。

hot3.png

权限管理基本是作为网站的标配了;

除非是像博客这类个人使用的;否则权限管理的重要性不言而喻;

今个就来写写auth权限管理;

thinkphp已经内置了auth权限类位于:/ThinkPHP/Library/Think/Auth.class.php

执行里面的sql生成3张表auth_rule、auth_group、auth_group_access;

然后自己再建一张users表;当然起其他的名字也是可以的;不过是需要在配置项中说明;

先对各表的作用简单介绍;

users:用户表;这个不废话;

auth_group:用户组表;比如说超级管理员组、普通管理员组、编辑等等;同时记录每个管理组有哪些权限;

auth_group_access:用户、群组关联表;比如说用户1属于超级管理员、用户2属于普通管理员和编辑;

auth_rule:权限表;具体的每条权限是什么;

如果还没看过权限管理;那建议先看源代码;透彻学习一样东西;最好的方法就是研究源代码;

这里重点不是要讲auth的原理;而是要给一个auth的demo;

git源代码:

1:先下载项目并安装;

完成后分别点超级管理员登录和文章管理员登录;

你会发现他们的权限是不同的;看到的后台菜单是不一样的;

白俊遥博客

2:菜单管理

白俊遥博客

为了控制每种管理员都能看到那些菜单;所以要有菜单的管理;

操作的是demo中的admin_nav表

3:权限管理

白俊遥博客

具体的每项权限的名称和内容;我这里一般都是和菜单对应的;

但是会比菜单管理多出一些;对比两张图即可看出来;多出来的一般都是些对菜单的增删改;

操作的是demo中的auth_rule表;

 

4:用户组管理

白俊遥博客

这里就是增加管理组;并为每个管理组分配权限了;选中的就表示有权限看到或者操作了;

白俊遥博客

5:管理员列表

白俊遥博客

把所有的管理员都列出来;可以添加管理员或者修改管理员的管理组;

白俊遥博客

 

当构建好这样一个结构后;权限管理简单其实只需要AdminBaseController.class.php中如下一段代码就完成了;

/Application/Common/Controller/AdminBaseController.class.php

$auth=new \Think\Auth();$rule_name=MODULE_NAME.'/'.CONTROLLER_NAME.'/'.ACTION_NAME;$result=$auth->check($rule_name,$_SESSION['user']['id']);if(!$result){    $this->error('您没有权限访问');}

这也是在   中讲述 /Application/Common/Controller中建各种BaseController的原因;

 本文为白俊遥原创文章,转载无需和我联系,但请注明来自http://baijunyao.com

转载于:https://my.oschina.net/u/2296413/blog/679525

你可能感兴趣的文章
防cc攻击利器之Httpgrard
查看>>
PCA MATLAB
查看>>
【天池大数据赛题解析】资金流入流出预测(附Top4答辩ppt)
查看>>
广告点击率预测 [离线部分]
查看>>
CodeForces 659F Polycarp and Hay
查看>>
Servlet客户请求的处理:HTTP请求报头HttpServletRequest接口应用
查看>>
http://stormzhang.com/devtools/2014/12/09/android-studio-tutorial3/ 安卓studio 安装教程
查看>>
ES6(5) - 变量的解构赋值
查看>>
vc++6.0 模拟鼠标点击代码 木马程序的编写 VC 模拟键盘输入
查看>>
VC用法汇总
查看>>
ORACLE同义词使用
查看>>
无法将类型“XXX”隐式转换为“XXX[]”(Cannot implicitly convert type 'XXX' to 'XXX[]')
查看>>
react-navigation
查看>>
pat 1014 1017 排队类问题
查看>>
设计循环队列
查看>>
前端UI框架小汇总
查看>>
ecshop 批量生成订单信息
查看>>
Java常用系统变量收集
查看>>
基于Hadoop2.7.3集群数据仓库Hive1.2.2的部署及使用
查看>>
常见负载均衡的优点和缺点对比(Nginx、HAProxy、LVS)
查看>>