## 类库路径
`extend/Rbac.php`
## 配置文件
配置文件路径:`application/admin/extra/rbac.php`
详细配置信息:
```
return [
// RBAC 权限验证
'user_auth_on' => true, // 是否开启认证
'user_auth_type' => 2, // 默认认证类型 1 - 登录认证 | 2 - 实时认证
'user_auth_key' => 'auth_id', // 用户认证 SESSION 标记
'admin_auth_key' => 'administrator',
'user_auth_model' => 'AdminUser', // 默认验证数据表模型
'user_auth_gateway' => 'Pub/login', // 默认认证网关
'not_auth_controller' => '', // 默认无需认证控制器
'require_auth_controller' => '', // 默认需要认证控制器
'not_auth_action' => '', // 默认无需认证方法
'require_auth_action' => '', // 默认需要认证方法
'common_auth_name' => 'common', // 公共授权控制器名称和方法名称
'guest_auth_on' => false, // 是否开启游客授权访问
'guest_auth_id' => 0, // 游客的用户ID
'role_table' => 'admin_role', // 角色表名称,不包含表前缀
'user_table' => 'admin_role_user', // 用户角色关系表名称,不包含表前缀
'access_table' => 'admin_access', // 权限表名称,不包含表前缀
'node_table' => 'admin_node', // 节点表名称,不包含表前缀
];
```
>[info] 配置认证控制器时多级控制器需要使用点语法
## 数据库
>[info] 所有的表都在 tpadmin.sql 文件中,不需要再次新建
### admin_user 表
```
CREATE TABLE `tp_admin_user` (
`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
`account` char(32) NOT NULL,
`realname` varchar(255) NOT NULL,
`password` char(32) NOT NULL,
`last_login_time` int(11) unsigned NOT NULL DEFAULT '0',
`last_login_ip` char(15) NOT NULL,
`login_count` mediumint(8) unsigned NOT NULL DEFAULT '0',
`email` varchar(50) NOT NULL,
`mobile` char(11) NOT NULL,
`remark` varchar(255) NOT NULL,
`status` tinyint(1) unsigned NOT NULL DEFAULT '1',
`isdelete` tinyint(1) unsigned NOT NULL DEFAULT '0',
`create_time` int(11) unsigned NOT NULL,
`update_time` int(11) unsigned NOT NULL,
PRIMARY KEY (`id`),
KEY `accountpassword` (`account`,`password`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC
```
### admin_role 表
```
CREATE TABLE `tp_admin_role` (
`id` smallint(6) unsigned NOT NULL AUTO_INCREMENT,
`pid` smallint(6) unsigned NOT NULL,
`name` varchar(20) NOT NULL,
`remark` varchar(255) NOT NULL,
`status` tinyint(1) unsigned NOT NULL DEFAULT '1',
`isdelete` tinyint(1) unsigned NOT NULL DEFAULT '0',
`create_time` int(11) unsigned NOT NULL,
`update_time` int(11) unsigned NOT NULL,
PRIMARY KEY (`id`),
KEY `parentId` (`pid`),
KEY `status` (`status`),
KEY `isdelete` (`isdelete`)
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC
```
### admin_role_user 表
```
CREATE TABLE `tp_admin_role_user` (
`role_id` mediumint(9) unsigned DEFAULT NULL,
`user_id` char(32) DEFAULT NULL,
KEY `group_id` (`role_id`),
KEY `user_id` (`user_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED
```
### admin_node 表
```
CREATE TABLE `tp_admin_node` (
`id` smallint(6) unsigned NOT NULL AUTO_INCREMENT,
`pid` smallint(6) unsigned NOT NULL,
`group_id` tinyint(3) unsigned NOT NULL DEFAULT '0',
`name` varchar(20) NOT NULL,
`title` varchar(50) NOT NULL,
`remark` varchar(255) NOT NULL,
`level` tinyint(1) unsigned NOT NULL,
`type` tinyint(1) unsigned NOT NULL DEFAULT '1' COMMENT '节点类型,1-控制器 | 0-方法',
`sort` smallint(6) unsigned NOT NULL,
`status` tinyint(1) NOT NULL DEFAULT '0',
`isdelete` tinyint(1) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
KEY `level` (`level`),
KEY `pid` (`pid`),
KEY `status` (`status`),
KEY `name` (`name`),
KEY `isdelete` (`isdelete`),
KEY `sort` (`sort`),
KEY `group_id` (`group_id`)
) ENGINE=MyISAM AUTO_INCREMENT=59 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC
```
### admin_access 表
```
CREATE TABLE `tp_admin_access` (
`role_id` smallint(6) unsigned NOT NULL,
`node_id` smallint(6) unsigned NOT NULL,
`level` tinyint(1) unsigned NOT NULL,
`pid` smallint(6) unsigned NOT NULL,
KEY `groupId` (`role_id`),
KEY `nodeId` (`node_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC
```
## 其他表
### admin_group 表
> 该表用于对节点进行分组,不涉及权限管理,实际上不属于 Rbac 权限管理的范畴,但本框架需要使用它对节点进行分组管理
```
CREATE TABLE `tp_admin_group` (
`id` smallint(3) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
`icon` varchar(255) NOT NULL COMMENT 'icon小图标',
`sort` int(11) unsigned NOT NULL DEFAULT '0',
`status` tinyint(1) unsigned NOT NULL DEFAULT '0',
`remark` varchar(255) NOT NULL,
`isdelete` tinyint(1) unsigned NOT NULL DEFAULT '0',
`create_time` int(11) unsigned NOT NULL,
`update_time` int(11) unsigned NOT NULL,
PRIMARY KEY (`id`),
KEY `sort` (`sort`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC
```
- 概要
- 开始使用
- 写在前面
- 目录结构
- 模板主题支持
- 前置方法before支持
- 数据返回
- 异常接管
- Rbac 权限管理
- 开始使用
- 用户管理
- 分组管理
- 节点管理
- 角色管理
- 使用流程
- 其他
- 代码自动生成 v1.2
- 示例一 - 一级控制器
- 示例二 - 多级控制器
- 示例三 - 从数据表生成
- 示例四 - 指定生成的文件
- 示例五 - 命令行模式
- 示例六 - 模拟命令行模式
- 代码自动生成
- 示例一 - 一级控制器
- 示例二 - 多级控制器
- 控制器
- 公共控制器
- traits 多继承 Controller
- 公开不授权控制器
- 其他控制器
- 标签扩展
- 模板
- 网站操作日志
- 节点图
- 行为驱动
- 其他后端方法
- Excel一键导出
- Excel一键导入
- 文件下载
- 邮件发送
- 七牛文件上传
- id加密
- 前端
- ajax请求
- 表单校验
- 丰富弹层
- 异步操作
- 表格溢出
- 随机字符串
- 自动面包屑导航
- 动态加载文件
- 文件上传
- Tab 切换
- 图片预览
- 二维码生成
- 日历组件
- 升级指导
- 更新日志
- FAQ