# rbac权限管理系统 **Repository Path**: ooad/rbac ## Basic Information - **Project Name**: rbac权限管理系统 - **Description**: 架构: springboot vue+vuex+vue-router springsecurity redis - **Primary Language**: Java - **License**: Not specified - **Default Branch**: develop - **Homepage**: https://juejin.cn/user/950408058513111 - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2021-10-27 - **Last Updated**: 2021-10-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # rbac #### 介绍 rbac是一个通用性权限管理系统,以用户<->角色<->资源为基础;不同的角色拥有不同的资源,不同的用户可以有不同的角色,从而可以达到丰富的授权体系。 系统中加入了常用了用户管理、角色管理、部分管理、岗位管理、菜单管理等基础功能 还加入了日志查看等安全管控功能 #### 软件架构 - springboot - vue+vuex+vue-router+elementui - springsecurity #### 安装教程 1. 安装mysql数据库 2. 安装redis缓存中间件 3. 安装nodejs 3. 下载后台源码,运行RbacApplication启动类 4. 下载前端源码,在根目录执行启动命令 npm run dev #### 数据库表结构 ```sql /* Navicat Premium Data Transfer Source Server : alisv Source Server Type : MySQL Source Server Version : 80023 Source Host : alisv:3306 Source Schema : rbac Target Server Type : MySQL Target Server Version : 80023 File Encoding : 65001 Date: 19/08/2021 10:50:38 */ SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for tb_dept -- ---------------------------- DROP TABLE IF EXISTS `tb_dept`; CREATE TABLE `tb_dept` ( `id` bigint NOT NULL, `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '部门名称', `principal` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '部门负责人', `principal_phone` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '联系电话', `email` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '负责人邮箱', `parent_id` bigint NULL DEFAULT NULL COMMENT '上级部门', `status` tinyint NULL DEFAULT NULL COMMENT '状态', `is_delete` tinyint NULL DEFAULT 0 COMMENT '是否删除', `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `sort` int NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; -- ---------------------------- -- Table structure for tb_dict -- ---------------------------- DROP TABLE IF EXISTS `tb_dict`; CREATE TABLE `tb_dict` ( `id` bigint NOT NULL DEFAULT 0, `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '字典名称', `sort` int NOT NULL COMMENT '排序', `is_default` tinyint NOT NULL DEFAULT 0, `desc` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '描述', `value` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '值', `type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '类型(同一类型为一组)', `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注', `status` int NOT NULL DEFAULT 1 COMMENT '状态', `is_delete` int NOT NULL DEFAULT 0 COMMENT '0 未删除 1 已删除', PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic; -- ---------------------------- -- Table structure for tb_job -- ---------------------------- DROP TABLE IF EXISTS `tb_job`; CREATE TABLE `tb_job` ( `id` bigint NOT NULL, `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `sort` int NOT NULL DEFAULT 0, `status` tinyint NOT NULL DEFAULT 1, `is_delete` tinyint NOT NULL DEFAULT 0, `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `remarks` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '岗位表' ROW_FORMAT = Dynamic; -- ---------------------------- -- Table structure for tb_menu -- ---------------------------- DROP TABLE IF EXISTS `tb_menu`; CREATE TABLE `tb_menu` ( `id` bigint NOT NULL COMMENT '主键', `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '名称', `menu_code` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '菜单编码', `parent_id` bigint NULL DEFAULT NULL COMMENT '父节点', `node_type` tinyint NOT NULL DEFAULT 1 COMMENT '节点类型,1文件夹,2页面,3按钮', `icon_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '图标地址', `sort` int NOT NULL DEFAULT 1 COMMENT '排序号', `router_url` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '页面对应的地址', `level` int NOT NULL DEFAULT 0 COMMENT '层次', `path` varchar(2500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '树id的路径 整个层次上的路径id,逗号分隔,想要找父节点特别快', `is_delete` tinyint NOT NULL DEFAULT 0 COMMENT '是否删除 1:已删除;0:未删除', `status` tinyint NOT NULL COMMENT '状态:0 不启用 1 正常 ', `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `component` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, `bind_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, PRIMARY KEY (`id`) USING BTREE, INDEX `idx_parent_id`(`parent_id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '菜单表' ROW_FORMAT = Dynamic; -- ---------------------------- -- Table structure for tb_oper_log -- ---------------------------- DROP TABLE IF EXISTS `tb_oper_log`; CREATE TABLE `tb_oper_log` ( `id` bigint NOT NULL, `status` int NOT NULL, `oper_ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL, `oper_addr` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL, `json_result` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, `request_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '请求url', `error_msg` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '错误消息', `method` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '调用后端接口', `oper_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '操作人用户名', `request_method` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '请求方式', `oper_param` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '请求参数', `title` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '系统模块', `oper_type` int NOT NULL COMMENT '操作类型', `operator_type` int NOT NULL COMMENT '操作人类型', `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic; -- ---------------------------- -- Table structure for tb_role -- ---------------------------- DROP TABLE IF EXISTS `tb_role`; CREATE TABLE `tb_role` ( `id` bigint UNSIGNED NOT NULL COMMENT '主键', `code` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '编码', `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '名称', `is_delete` tinyint NOT NULL DEFAULT 0 COMMENT '是否删除 1:已删除;0:未删除', `status` tinyint NOT NULL DEFAULT 1, `sort` int NOT NULL DEFAULT 1, `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`) USING BTREE, INDEX `idx_code`(`code`) USING BTREE, INDEX `idx_name`(`name`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '角色表' ROW_FORMAT = Dynamic; -- ---------------------------- -- Table structure for tb_role_menu_rel -- ---------------------------- DROP TABLE IF EXISTS `tb_role_menu_rel`; CREATE TABLE `tb_role_menu_rel` ( `id` bigint NOT NULL, `role_id` bigint NOT NULL, `menu_id` bigint NOT NULL, `role_name` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `menu_name` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `role_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `is_delete` tinyint NOT NULL DEFAULT 0, `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; -- ---------------------------- -- Table structure for tb_user -- ---------------------------- DROP TABLE IF EXISTS `tb_user`; CREATE TABLE `tb_user` ( `id` bigint NOT NULL COMMENT '消息给过来的ID', `mobile` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '手机号', `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '姓名', `password` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '密码', `status` tinyint NOT NULL DEFAULT 1, `nickname` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, `sex` tinyint NOT NULL, `email` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, `dept_id` bigint NOT NULL, `job_id` bigint NOT NULL, `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', `is_delete` tinyint NOT NULL DEFAULT 0 COMMENT '是否删除 1:已删除;0:未删除', `remarks` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '备注', PRIMARY KEY (`id`) USING BTREE, UNIQUE INDEX `idx_name`(`name`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户表' ROW_FORMAT = Dynamic; -- ---------------------------- -- Table structure for tb_user_role_rel -- ---------------------------- DROP TABLE IF EXISTS `tb_user_role_rel`; CREATE TABLE `tb_user_role_rel` ( `id` bigint UNSIGNED NOT NULL COMMENT '主键', `user_id` bigint NOT NULL COMMENT '用户ID', `role_id` bigint NOT NULL COMMENT '角色ID', `create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP, `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', `is_delete` tinyint NOT NULL DEFAULT 0, PRIMARY KEY (`id`) USING BTREE, INDEX `idx_user_id`(`user_id`) USING BTREE, INDEX `idx_role_id`(`role_id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户角色表' ROW_FORMAT = Dynamic; SET FOREIGN_KEY_CHECKS = 1; ``` #### 页面展示 ##### 1 登录页面 ![image-20210819104439977](https://gitee.com/xxjqr/noteimg/raw/master/img/image-20210819104439977.png) ##### 2 用户管理 ![image-20210819104654949](https://gitee.com/xxjqr/noteimg/raw/master/img/image-20210819104654949.png) ##### 3 部门管理 ![image-20210819104737754](https://gitee.com/xxjqr/noteimg/raw/master/img/image-20210819104737754.png) ##### 4 菜单管理 ![image-20210819104946993](https://gitee.com/xxjqr/noteimg/raw/master/img/image-20210819104946993.png) ##### 5 日志查看 ![image-20210819104829592](https://gitee.com/xxjqr/noteimg/raw/master/img/image-20210819104829592.png) ##### 6 日志详情 ![image-20210819104905448](https://gitee.com/xxjqr/noteimg/raw/master/img/image-20210819104905448.png)