欢迎您, 来到 宁时修博客.^_^

ThinkPHP 3.2.3之权限控制

2016/09/08 宁时修 php 1452
auth权限控制

简单介绍一下AUTH,AUTH是对权限规则进行验证(think_auth_rule),
而不是对节点进行验证。如果你硬要理解节点的话,也OK。你可以把节点当做规则名称进行验证。

1.首先你得设计表结构是吧,这点呢ThinkPHP官方早就帮你设计好了,
你可以直接到Auth.class.php这个文件(ThinkPHP/Library/think/Auth.class.php),
复制粘贴就OK,有三张表分别是think_auth_rule 权限规则表 think_auth_group 用户组表 think_auth_group_access 用户组和用户的中间表,
ps:表的前缀记得更换成自己项目的表前缀

2.修改配置项,auth权限认证呢默认的用户表是member表,如果你的项目,用户表恰好是member的话,就无须修改了,
如果不是那么我们需要做以下操作,

//auth权限管理配置
'AUTH_CONFIG' => array(
   'AUTH_USER'      => 'users'                         //用户信息表
    )


3.到了第三步我们就得做一些实际性增删改查操作了

1469763635620733.png

分别有权限管理,用户组管理,和管理员列表
首先做那一块开始好呢,我们可以先从管理员开始,管理员操作包括,添加管理员,修改管理员,和删除管理员。
1469763807671941.png

1469763828119198.png

上面操作,需要操作的表,你项目的用户表和 (用户组和用户的中间表)

think_member, think_auth_group_access, 其实看到这里,我们应该看到上面有显示管理组是吧,

所以我们最好先做好用户组增删改查, 再来做 管理员 的一些操作,

操作用户组 需要把数据 插入到 think_auth_group 一些简单增删改查这里就不做介绍,因为这是很基础的东西,不会的同学可以到ThinkPHP官方查看手册进行学习.^_^!

 

我们把上述所讲的操作都做好之后呢,就可以做权限管理了,权限管理操作包括权限的增删改查,还是之前一样的套路

1469763955281643.png

1469763928463839.png


做这一块的时候呢,我对权限认证表做一些调整,新增了一些字段,下面我给大家上图,在做介绍

1469764040680805.png

其实我在图中,就有说明了,为什么要新增pid 顾名思义写过递归的同学估计一眼就看出来了,关于递归呢,我在这里就不多讲,不懂得同学可以自行百度查看相关学习资料进行学习.^_^!!!

Ps:权限认证会对你所有方法进行验证,所以你必须把所有 操作方法全部列表权限认证表中,不然操作的时候会检测出没有操作的权限的!

 下一步我们来给管理组分配权限:

1469764021847855.png

1469764101722374.png

3.对规则进行验证,在你的后台公用控制器添加下列代码即可进行权限验证

//权限验证
 $auth = new \Think\Auth();
 $rule_name = MODULE_NAME.'/'.CONTROLLER_NAME.'/'.ACTION_NAME;
 $result = $auth->check($rule_name,$_SESSION['admin_user']['uid']);
 if(!$result){
     $this->error('亲,您没有权限访问哦.^_^');
 }


点赞
说说你的看法

所有评论: (0)