auth权限管理
权限管理基本是作为网站的标配了;
除非是像博客这类个人使用的;否则权限管理的重要性不言而喻;
今个就来写写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源代码:http://git.oschina.net/shuaibai123/thinkphp-bjyadmin
1:先下载项目并安装;
完成后分别点超级管理员登录和文章管理员登录;
你会发现他们的权限是不同的;看到的后台菜单是不一样的;
2:菜单管理
为了控制每种管理员都能看到那些菜单;所以要有菜单的管理;
操作的是demo中的admin_nav表
3:权限管理
具体的每项权限的名称和内容;我这里一般都是和菜单对应的;
但是会比菜单管理多出一些;对比两张图即可看出来;多出来的一般都是些对菜单的增删改;
操作的是demo中的auth_rule表;
4:用户组管理
这里就是增加管理组;并为每个管理组分配权限了;选中的就表示有权限看到或者操作了;
5:管理员列表
把所有的管理员都列出来;可以添加管理员或者修改管理员的管理组;
当构建好这样一个结构后;权限管理简单其实只需要AdminBaseController.class.php中如下一段代码就完成了;
/Application/Common/Controller/AdminBaseController.class.php$auth=new \Think\Auth();<br>
$rule_name=MODULE_NAME.'/'.CONTROLLER_NAME.'/'.ACTION_NAME;<br>
$result=$auth->check($rule_name,$_SESSION['user']['id']);<br>
if(!$result){<br>
$this->error('您没有权限访问');<br>
}
这也是在 thinkphp的目录结构设计经验总结 中讲述 /Application/Common/Controller中建各种BaseController的原因;
本文为白俊遥原创文章,转载无需和我联系,但请注明来自白俊遥博客http://www.baijunyao.com
AD:真正免费,域名+虚机+企业邮箱=0元

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

SublimeText3 Linux新版
SublimeText3 Linux最新版

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)