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元

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

WebStorm Mac version
Useful JavaScript development tools

SublimeText3 Linux new version
SublimeText3 Linux latest version

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Atom editor mac version download
The most popular open source editor

Dreamweaver CS6
Visual web development tools
