diff --git a/README.md b/README.md index e332418..0438622 100644 --- a/README.md +++ b/README.md @@ -5,19 +5,27 @@ ### 核心 - 每个登录用户拥有各自的N条**权限**,比如文章:查看/编辑/发布/删除 + 每个登录用户拥有各自的N条**权限**,比如文章:查看/编辑/发布/删除 ### 后端 -基于 [RABC新解](http://globeeip.iteye.com/blog/1236167) . +​ 基于 [RABC新解](http://globeeip.iteye.com/blog/1236167) . -用户--角色--权限 +​ 通常我们的权限设计都是 用户--角色--权限 ,其中**角色**是我们写代码的人没法控制的,它可以有多条权限,每个用户又可以设计为拥有多个角色.因此如果从角色着手进行权限验证,系统都必须根据用户的配置动起来,非常复杂. -后台接口只验证**权限**,不看角色. +​ 所以我们后台设计的关键点就在于: **后台接口只验证权限,不看角色.** -角色的作用其实只是用来管理分配权限的,真正的验证只验证**权限** ,而不去管你是否是那种角色.体现在代码上就是接口上注解为```@RequiresPermissions("writer:list")``` ```@RequiresPermissions("writer:update")``` +角色的作用其实只是用来管理分配权限的,真正的验证只验证**权限** ,而不去管你是否是那种角色.体现在代码上就是接口上注解为 -而不是验证```@RequiresRoles(...)``` +```java +@RequiresPermissions("article:add") +``` + +而不是 + +```java +@RequiresRoles(value = {"admin","manager","writer"}, logical = Logical.OR) +``` ### 前端 diff --git a/db.sql b/db.sql index abafbc6..bee5f34 100644 --- a/db.sql +++ b/db.sql @@ -1,9 +1,29 @@ # Host: localhost (Version 5.7.11-log) -# Date: 2017-11-18 10:11:10 +# Date: 2017-11-18 14:00:25 # Generator: MySQL-Front 5.3 (Build 8.6) /*!40101 SET NAMES utf8 */; +# +# Structure for table "article" +# + +DROP TABLE IF EXISTS `article`; +CREATE TABLE `article` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `content` varchar(255) DEFAULT '' COMMENT '文章内容', + `create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `delete_status` varchar(1) DEFAULT '1' COMMENT '是否有效 1.有效 2无效', + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8 COMMENT='发布号作者表'; + +# +# Data for table "article" +# + +INSERT INTO `article` VALUES (5,'莎士比亚','2017-10-25 09:08:45','2017-10-30 17:59:41','1'),(6,'亚里士多德','2017-10-26 10:49:28','2017-11-18 09:54:15','1'),(10,'亚历山大','2017-10-26 14:57:45','2017-11-08 13:28:52','1'),(11,'李白','2017-10-26 15:23:42','2017-10-26 15:23:42','1'),(19,'文章test2','2017-11-18 13:37:07','2017-11-18 13:37:11','1'); + # # Structure for table "sys_permission" # @@ -22,7 +42,7 @@ CREATE TABLE `sys_permission` ( # Data for table "sys_permission" # -INSERT INTO `sys_permission` VALUES (101,'writer','作者管理','writer:list','查看'),(102,'writer','作者管理','writer:add','新增'),(103,'writer','作者管理','writer:update','修改'),(601,'user','用户','user:list','查看'),(602,'user','用户','user:add','新增'),(603,'user','用户','user:update','修改'),(701,'role','角色权限','role:list','查看'),(702,'role','角色权限','role:add','新增'),(703,'role','角色权限','role:update','修改'); +INSERT INTO `sys_permission` VALUES (101,'article','文章管理','article:list','查看'),(102,'article','文章管理','article:add','新增'),(103,'article','文章管理','article:update','修改'),(601,'user','用户','user:list','查看'),(602,'user','用户','user:add','新增'),(603,'user','用户','user:update','修改'),(701,'role','角色权限','role:list','查看'),(702,'role','角色权限','role:add','新增'),(703,'role','角色权限','role:update','修改'); # # Structure for table "sys_role" @@ -39,7 +59,7 @@ CREATE TABLE `sys_role` ( # Data for table "sys_role" # -INSERT INTO `sys_role` VALUES (1,'管理员'),(2,'程序猿'); +INSERT INTO `sys_role` VALUES (1,'管理员'),(2,'作家'); # # Structure for table "sys_role_permission" @@ -57,7 +77,7 @@ CREATE TABLE `sys_role_permission` ( # Data for table "sys_role_permission" # -INSERT INTO `sys_role_permission` VALUES (1,2,101),(2,2,102),(3,2,201),(4,2,103); +INSERT INTO `sys_role_permission` VALUES (1,2,101),(2,2,102); # # Structure for table "sys_user" @@ -81,24 +101,3 @@ CREATE TABLE `sys_user` ( # INSERT INTO `sys_user` VALUES (10003,'admin','123456','超级用户23',1,'2017-10-30 11:52:38','2017-11-17 23:51:40','1'),(10004,'user','123456','莎士比亚',2,'2017-10-30 16:13:02','2017-11-18 02:48:24','1'),(10005,'aaa','123456','abba',1,'2017-11-15 14:02:56','2017-11-17 23:51:42','1'); - -# -# Structure for table "writer" -# - -DROP TABLE IF EXISTS `writer`; -CREATE TABLE `writer` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `writer_id` varchar(50) DEFAULT '' COMMENT '发布号id', - `writer_name` varchar(255) DEFAULT '' COMMENT '发布号名称', - `create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', - `delete_status` varchar(1) DEFAULT '1' COMMENT '是否有效 1.有效 2无效', - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8 COMMENT='发布号作者表'; - -# -# Data for table "writer" -# - -INSERT INTO `writer` VALUES (5,'writer_5885','莎士比亚','2017-10-25 09:08:45','2017-10-30 17:59:41','1'),(6,'writer_58852','亚里士多德','2017-10-26 10:49:28','2017-11-18 09:54:15','1'),(10,'writer_e089cc2c49bb4f90920803f00da1254a','亚历山大','2017-10-26 14:57:45','2017-11-08 13:28:52','1'),(11,'writer_d6d8308c6ec642c3bbc0136f7de7ee7a','李白','2017-10-26 15:23:42','2017-10-26 15:23:42','1');