thinkphp权限这个功能需要4张表 分别为think_auth_rule,规则表,think_auth_group 用户组表,think_auth_group_access 用户组明细表以及用户表think_manager。
数据表命令:
//数据库
/*
– think_auth_rule,规则表,
– id:主键,name:规则唯一标识, title:规则中文名称 status 状态:为1正常,为0禁用,condition:规则表达式,为空表示存在就验证,不为空表示按照条件验证
DROP TABLE IF EXISTS think_auth_rule
;
CREATE TABLE think_auth_rule
(
id
mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
name
char(80) NOT NULL DEFAULT ‘’,
title
char(20) NOT NULL DEFAULT ‘’,
status
tinyint(1) NOT NULL DEFAULT ‘1’,
condition
char(100) NOT NULL DEFAULT ‘’,
PRIMARY KEY (id
),
UNIQUE KEY name
(name
)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
– think_auth_group 用户组表,
– id:主键, title:用户组中文名称, rules:用户组拥有的规则id, 多个规则","隔开,status 状态:为1正常,为0禁用
DROP TABLE IF EXISTS think_auth_group
;
CREATE TABLE think_auth_group
(
id
mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
title
char(100) NOT NULL DEFAULT ‘’,
status
tinyint(1) NOT NULL DEFAULT ‘1’,
rules
char(80) NOT NULL DEFAULT ‘’,
PRIMARY KEY (id
)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
– think_auth_group_access 用户组明细表
– uid:用户id,group_id:用户组id
DROP TABLE IF EXISTS think_auth_group_access
;
CREATE TABLE think_auth_group_access
(
uid
mediumint(8) unsigned NOT NULL,
group_id
mediumint(8) unsigned NOT NULL,
UNIQUE KEY uid_group_id
(uid
,group_id
),
KEY uid
(uid
),
KEY group_id
(group_id
)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
配置thinkphp的配置文件
‘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_manager’//用户信息表
接下来就编写对应模块的增删改查的方法
接下来在后台公共控制器里的_initialize()方法里面添加
import(‘ORG.Util.Auth’);