9

本文代码截取于笔者刚做的一个微型CRM

一、准备工作

1.阅读auth类源码
只需要大概看看,不要求读懂,路径在/Thinkphp/Library/Auth.class.php

clipboard.png

zhixuclipboard.png
2.数据库准备
把Auth.class.php文件里的代码复制下来创建数据库即可,四个主要数据库,think_auth_rule规则表,think_auth_group 用户组表,think_auth_group_access 用户组明细表(关系表),think_user 用户表,其中用户表为自己创建,这四个表的字段可根据实际项目内容进行相应增加,四个表的截图
3.配置

'AUTH_CONFIG'=>array(  
        'AUTH_ON' => true, //认证开关  
        'AUTH_TYPE' => 1, // 认证方式,1为时时认证;2为登录认证。  
        'AUTH_GROUP' => 'think_auth_group', //用户组数据表名  
        'AUTH_GROUP_ACCESS' => 'think_auth_group_access', //用户组明细表  
        'AUTH_RULE' => 'think_auth_rule', //权限规则表  
        'AUTH_USER' => 'think_admin'//用户信息表  
    )  

(1)think_auth_rule

clipboard.png
(2)think_auth_group

clipboard.png
(3)think_auth_group_access

clipboard.png
(4)用户表

clipboard.png

二、角色(用户组)增删改查

操作数据库think_auth_group标的增删改查,增加、修改时,利用html的check提交,用implode把数组转为逗号隔开的字符串存入数据库rules中
clipboard.png

clipboard.png

三、用户增删改查

主要操作think_user 用户表,同时也要操作think_auth_group_access 用户组明细表(关系表)

四、规则表操作

name写模块/控制器/方法,这个根据自己项目定,也可以用其他形式,包括加上参数也可以
clipboard.png

五、重点来了,auth类的使用

代码如下图,超级管理员可以免验证,其他用户需要check,这里的name要和规则表的name字段对应
clipboard.png

这里是代码片段,如有什么问题可以和我沟通QQ:755092893

微信公众号(给个关注吧,老表):

图片描述


李尚
61 声望3 粉丝