## 類庫路徑
`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