Browse Source

v.1.5.1 发布,优化多租户功能,支持自动创建用户、角色等信息

YunaiV 3 years ago
parent
commit
ec8b356ba6
46 changed files with 104 additions and 111 deletions
  1. 6 2
      README.md
  2. 1 1
      pom.xml
  3. 2 41
      sql/ruoyi-vue-pro.sql
  4. 1 1
      yudao-dependencies/pom.xml
  5. 4 1
      yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/core/dept/rule/DeptDataPermissionRule.java
  6. 3 3
      yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/test/java/cn/iocoder/yudao/framework/datapermission/core/dept/rule/DeptDataPermissionRuleTest.java
  7. 1 1
      yudao-server/pom.xml
  8. 2 2
      yudao-server/src/main/java/cn/iocoder/yudao/server/framework/ui/package-info.java
  9. 2 2
      yudao-server/src/main/resources/admin-ui/static/js/10.js
  10. BIN
      yudao-server/src/main/resources/admin-ui/static/js/10.js.gz
  11. 2 2
      yudao-server/src/main/resources/admin-ui/static/js/11.js
  12. BIN
      yudao-server/src/main/resources/admin-ui/static/js/11.js.gz
  13. 0 0
      yudao-server/src/main/resources/admin-ui/static/js/12.js
  14. BIN
      yudao-server/src/main/resources/admin-ui/static/js/12.js.gz
  15. 2 2
      yudao-server/src/main/resources/admin-ui/static/js/13.js
  16. BIN
      yudao-server/src/main/resources/admin-ui/static/js/13.js.gz
  17. 2 2
      yudao-server/src/main/resources/admin-ui/static/js/14.js
  18. BIN
      yudao-server/src/main/resources/admin-ui/static/js/14.js.gz
  19. 2 2
      yudao-server/src/main/resources/admin-ui/static/js/15.js
  20. BIN
      yudao-server/src/main/resources/admin-ui/static/js/15.js.gz
  21. 2 2
      yudao-server/src/main/resources/admin-ui/static/js/16.js
  22. BIN
      yudao-server/src/main/resources/admin-ui/static/js/16.js.gz
  23. 0 0
      yudao-server/src/main/resources/admin-ui/static/js/17.js
  24. BIN
      yudao-server/src/main/resources/admin-ui/static/js/17.js.gz
  25. 2 2
      yudao-server/src/main/resources/admin-ui/static/js/18.js
  26. BIN
      yudao-server/src/main/resources/admin-ui/static/js/18.js.gz
  27. 2 2
      yudao-server/src/main/resources/admin-ui/static/js/20.js
  28. BIN
      yudao-server/src/main/resources/admin-ui/static/js/20.js.gz
  29. 2 2
      yudao-server/src/main/resources/admin-ui/static/js/21.js
  30. BIN
      yudao-server/src/main/resources/admin-ui/static/js/21.js.gz
  31. 8 8
      yudao-server/src/main/resources/admin-ui/static/js/4.js
  32. BIN
      yudao-server/src/main/resources/admin-ui/static/js/4.js.gz
  33. 2 2
      yudao-server/src/main/resources/admin-ui/static/js/5.js
  34. BIN
      yudao-server/src/main/resources/admin-ui/static/js/5.js.gz
  35. 2 2
      yudao-server/src/main/resources/admin-ui/static/js/6.js
  36. BIN
      yudao-server/src/main/resources/admin-ui/static/js/6.js.gz
  37. 6 6
      yudao-server/src/main/resources/admin-ui/static/js/7.js
  38. BIN
      yudao-server/src/main/resources/admin-ui/static/js/7.js.gz
  39. 2 2
      yudao-server/src/main/resources/admin-ui/static/js/8.js
  40. BIN
      yudao-server/src/main/resources/admin-ui/static/js/8.js.gz
  41. 2 2
      yudao-server/src/main/resources/admin-ui/static/js/9.js
  42. BIN
      yudao-server/src/main/resources/admin-ui/static/js/9.js.gz
  43. 14 14
      yudao-server/src/main/resources/admin-ui/static/js/app.js
  44. BIN
      yudao-server/src/main/resources/admin-ui/static/js/app.js.gz
  45. 1 1
      yudao-ui-admin/package.json
  46. 29 4
      更新日志.md

+ 6 - 2
README.md

@@ -2,7 +2,8 @@
 
 **拒绝虚假开源,售卖商业版,程序员不骗程序员!!**
 
-**「永远年轻,永远热泪盈眶」**
+**「我喜欢写代码,乐此不疲」**  
+**「我喜欢做开源,以此为乐」**
 
 ## 🐯 平台简介
 
@@ -14,6 +15,7 @@
 * 后端采用 Spring Boot、MySQL + MyBatis Plus、Redis + Redisson。
 * 权限认证使用 Spring Security & Token & Redis,支持多终端、多种用户的认证系统。
 * 支持加载动态权限菜单,按钮级别权限控制,本地缓存提升性能。
+* 支持 SaaS 多租户系统,可自定义每个租户的权限,提供透明化的多租户底层封装。
 * 工作流使用 Activiti ,支持动态表单、在线设计流程、多种任务分配方式。
 * 高效率开发,使用代码生成器可以一键生成前后端代码 + 单元测试 + Swagger 接口文档 + Validator 参数校验。
 * 集成微信小程序、微信公众号、企业微信、钉钉等三方登陆,集成支付宝、微信等支付与退款。
@@ -63,6 +65,7 @@
 |  | 部门管理 | 配置系统组织机构(公司、部门、小组),树结构展现支持数据权限 |
 |  | 岗位管理 | 配置系统用户所属担任职务 |
 | 🚀 | 租户管理 | 配置系统租户,支持 SaaS 场景下的多租户功能 |
+| 🚀 | 租户套餐 | 配置租户套餐,自定每个租户的菜单、操作、按钮的权限 |
 |  | 字典管理 | 对系统中经常使用的一些较为固定的数据进行维护 |
 | 🚀 | 短信管理 | 短信渠道、短息模板、短信日志,对接阿里云、云片等主流短信平台 |
 | 🚀 | 操作日志 | 系统正常操作日志记录和查询,集成 Swagger 生成日志内容 |
@@ -189,7 +192,8 @@ ps:核心功能已经实现,正在对接微信小程序中...
 | 模块 | biu |  biu | biu |
 | --- | --- | --- | --- |
 | 登录 & 首页 | ![登录](https://static.iocoder.cn/images/ruoyi-vue-pro/登录.jpg) | ![首页](https://static.iocoder.cn/images/ruoyi-vue-pro/首页.jpg) | ![个人中心](https://static.iocoder.cn/images/ruoyi-vue-pro/个人中心.jpg) |
-| 用户 & 租户 | ![用户管理](https://static.iocoder.cn/images/ruoyi-vue-pro/用户管理.jpg) | ![在线用户](https://static.iocoder.cn/images/ruoyi-vue-pro/在线用户.jpg) | ![用户管理](https://static.iocoder.cn/images/ruoyi-vue-pro/租户管理.jpg) |
+| 用户 | ![用户管理](https://static.iocoder.cn/images/ruoyi-vue-pro/用户管理.jpg) | ![在线用户](https://static.iocoder.cn/images/ruoyi-vue-pro/在线用户.jpg) | - |
+| 租户 & 套餐 | ![租户管理](https://static.iocoder.cn/images/ruoyi-vue-pro/租户管理.jpg) | ![租户套餐](https://static.iocoder.cn/images/ruoyi-vue-pro/租户套餐.jpg)  | - |
 | 部门 & 岗位 | ![部门管理](https://static.iocoder.cn/images/ruoyi-vue-pro/部门管理.jpg) | ![岗位管理](https://static.iocoder.cn/images/ruoyi-vue-pro/岗位管理.jpg) | - |
 | 菜单 & 角色 | ![菜单管理](https://static.iocoder.cn/images/ruoyi-vue-pro/菜单管理.jpg) | ![角色管理](https://static.iocoder.cn/images/ruoyi-vue-pro/角色管理.jpg) | - |
 | 审计日志 | ![操作日志](https://static.iocoder.cn/images/ruoyi-vue-pro/操作日志.jpg) | ![登录日志](https://static.iocoder.cn/images/ruoyi-vue-pro/登录日志.jpg) | - |

+ 1 - 1
pom.xml

@@ -26,7 +26,7 @@
     <url>https://github.com/YunaiV/ruoyi-vue-pro</url>
 
     <properties>
-        <revision>1.5.0-snapshot</revision>
+        <revision>1.5.1-snapshot</revision>
         <!-- Maven 相关 -->
         <java.version>1.8</java.version>
         <maven.compiler.source>${java.version}</maven.compiler.source>

File diff suppressed because it is too large
+ 2 - 41
sql/ruoyi-vue-pro.sql


+ 1 - 1
yudao-dependencies/pom.xml

@@ -14,7 +14,7 @@
     <url>https://github.com/YunaiV/ruoyi-vue-pro</url>
 
     <properties>
-        <revision>1.5.0-snapshot</revision>
+        <revision>1.5.1-snapshot</revision>
         <!-- 统一依赖管理 -->
         <spring.boot.version>2.5.10</spring.boot.version>
         <!-- Web 相关 -->

+ 4 - 1
yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/core/dept/rule/DeptDataPermissionRule.java

@@ -13,6 +13,7 @@ import cn.iocoder.yudao.framework.security.core.LoginUser;
 import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
 import com.baomidou.mybatisplus.core.metadata.TableInfoHelper;
 import lombok.AllArgsConstructor;
+import lombok.Getter;
 import lombok.extern.slf4j.Slf4j;
 import net.sf.jsqlparser.expression.Alias;
 import net.sf.jsqlparser.expression.Expression;
@@ -52,6 +53,8 @@ public class DeptDataPermissionRule implements DataPermissionRule {
     private static final String DEPT_COLUMN_NAME = "dept_id";
     private static final String USER_COLUMN_NAME = "user_id";
 
+    static final Expression EXPRESSION_NULL = new NullValue();
+
     private final DeptDataPermissionFrameworkService deptDataPermissionService;
 
     /**
@@ -116,7 +119,7 @@ public class DeptDataPermissionRule implements DataPermissionRule {
                     JsonUtils.toJsonString(loginUser), tableName, tableAlias, JsonUtils.toJsonString(deptDataPermission));
 //            throw new NullPointerException(String.format("LoginUser(%d) Table(%s/%s) 构建的条件为空",
 //                    loginUser.getId(), tableName, tableAlias.getName()));
-            return new NullValue();
+            return EXPRESSION_NULL;
         }
         if (deptExpression == null) {
             return userExpression;

+ 3 - 3
yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/test/java/cn/iocoder/yudao/framework/datapermission/core/dept/rule/DeptDataPermissionRuleTest.java

@@ -18,6 +18,7 @@ import org.mockito.MockedStatic;
 
 import java.util.Map;
 
+import static cn.iocoder.yudao.framework.datapermission.core.dept.rule.DeptDataPermissionRule.EXPRESSION_NULL;
 import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo;
 import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomString;
 import static org.junit.jupiter.api.Assertions.*;
@@ -137,10 +138,9 @@ class DeptDataPermissionRuleTest extends BaseMockitoUnitTest {
             when(deptDataPermissionFrameworkService.getDeptDataPermission(same(loginUser))).thenReturn(deptDataPermission);
 
             // 调用
-            NullPointerException exception = assertThrows(NullPointerException.class,
-                    () -> rule.getExpression(tableName, tableAlias));
+            Expression expression = rule.getExpression(tableName, tableAlias);
             // 断言
-            assertEquals("LoginUser(1) Table(t_user/u) 构建的条件为空", exception.getMessage());
+            assertSame(EXPRESSION_NULL, expression);
         }
     }
 

+ 1 - 1
yudao-server/pom.xml

@@ -77,7 +77,7 @@
             <plugin>
                 <groupId>org.springframework.boot</groupId>
                 <artifactId>spring-boot-maven-plugin</artifactId>
-                <version>2.5.9</version> <!-- 如果 spring.boot.version 版本修改,则这里也要跟着修改 -->
+                <version>2.5.10</version> <!-- 如果 spring.boot.version 版本修改,则这里也要跟着修改 -->
                 <configuration>
                     <fork>true</fork>
                 </configuration>

+ 2 - 2
yudao-server/src/main/java/cn/iocoder/yudao/server/framework/ui/package-info.java

@@ -1,6 +1,6 @@
 /**
- * 目的:解决后端开发,不太擅长 node 环境的配置,导致启动 yudao-admin-ui 项目一直失败
- * 所以,本项目将 yudao-admin-ui 项目通过 npm run build:demo1024 的方式,将它构建成静态资源,
+ * 目的:解决后端开发,不太擅长 node 环境的配置,导致启动 yudao-ui-admin 项目一直失败
+ * 所以,本项目将 yudao-ui-admin 项目通过 npm run build:demo1024 的方式,将它构建成静态资源,
  * 然后,使用 Spring Boot 作为静态资源服务器,进行启动访问。
  * 注意,这个项目仅仅作为后端开发的快速体验,并不要部署到生产环境!!!
  */

File diff suppressed because it is too large
+ 2 - 2
yudao-server/src/main/resources/admin-ui/static/js/10.js


BIN
yudao-server/src/main/resources/admin-ui/static/js/10.js.gz


File diff suppressed because it is too large
+ 2 - 2
yudao-server/src/main/resources/admin-ui/static/js/11.js


BIN
yudao-server/src/main/resources/admin-ui/static/js/11.js.gz


File diff suppressed because it is too large
+ 0 - 0
yudao-server/src/main/resources/admin-ui/static/js/12.js


BIN
yudao-server/src/main/resources/admin-ui/static/js/12.js.gz


File diff suppressed because it is too large
+ 2 - 2
yudao-server/src/main/resources/admin-ui/static/js/13.js


BIN
yudao-server/src/main/resources/admin-ui/static/js/13.js.gz


File diff suppressed because it is too large
+ 2 - 2
yudao-server/src/main/resources/admin-ui/static/js/14.js


BIN
yudao-server/src/main/resources/admin-ui/static/js/14.js.gz


File diff suppressed because it is too large
+ 2 - 2
yudao-server/src/main/resources/admin-ui/static/js/15.js


BIN
yudao-server/src/main/resources/admin-ui/static/js/15.js.gz


File diff suppressed because it is too large
+ 2 - 2
yudao-server/src/main/resources/admin-ui/static/js/16.js


BIN
yudao-server/src/main/resources/admin-ui/static/js/16.js.gz


File diff suppressed because it is too large
+ 0 - 0
yudao-server/src/main/resources/admin-ui/static/js/17.js


BIN
yudao-server/src/main/resources/admin-ui/static/js/17.js.gz


File diff suppressed because it is too large
+ 2 - 2
yudao-server/src/main/resources/admin-ui/static/js/18.js


BIN
yudao-server/src/main/resources/admin-ui/static/js/18.js.gz


File diff suppressed because it is too large
+ 2 - 2
yudao-server/src/main/resources/admin-ui/static/js/20.js


BIN
yudao-server/src/main/resources/admin-ui/static/js/20.js.gz


File diff suppressed because it is too large
+ 2 - 2
yudao-server/src/main/resources/admin-ui/static/js/21.js


BIN
yudao-server/src/main/resources/admin-ui/static/js/21.js.gz


File diff suppressed because it is too large
+ 8 - 8
yudao-server/src/main/resources/admin-ui/static/js/4.js


BIN
yudao-server/src/main/resources/admin-ui/static/js/4.js.gz


File diff suppressed because it is too large
+ 2 - 2
yudao-server/src/main/resources/admin-ui/static/js/5.js


BIN
yudao-server/src/main/resources/admin-ui/static/js/5.js.gz


File diff suppressed because it is too large
+ 2 - 2
yudao-server/src/main/resources/admin-ui/static/js/6.js


BIN
yudao-server/src/main/resources/admin-ui/static/js/6.js.gz


File diff suppressed because it is too large
+ 6 - 6
yudao-server/src/main/resources/admin-ui/static/js/7.js


BIN
yudao-server/src/main/resources/admin-ui/static/js/7.js.gz


File diff suppressed because it is too large
+ 2 - 2
yudao-server/src/main/resources/admin-ui/static/js/8.js


BIN
yudao-server/src/main/resources/admin-ui/static/js/8.js.gz


File diff suppressed because it is too large
+ 2 - 2
yudao-server/src/main/resources/admin-ui/static/js/9.js


BIN
yudao-server/src/main/resources/admin-ui/static/js/9.js.gz


File diff suppressed because it is too large
+ 14 - 14
yudao-server/src/main/resources/admin-ui/static/js/app.js


BIN
yudao-server/src/main/resources/admin-ui/static/js/app.js.gz


+ 1 - 1
yudao-ui-admin/package.json

@@ -1,6 +1,6 @@
 {
   "name": "yudao-ui-admin",
-  "version": "1.5.0-snapshot",
+  "version": "1.5.1-snapshot",
   "description": "芋道管理系统",
   "author": "芋道",
   "license": "MIT",

+ 29 - 4
更新日志.md

@@ -22,10 +22,34 @@ TODO
 
 ### 📈 Statistic
 
-* 总代码行数:TODO
-* 源码代码行数:TODO
-* 注释行数:TODO
-* 单元测试用例数:TODO
+TODO
+
+### ⭐ New Features
+
+TODO
+
+### 🐞 Bug Fixes
+
+TODO
+
+### 🔨 Dependency Upgrades
+
+TODO
+
+## [v.1.5.1]
+
+### ⚠️ Warning
+
+暂无,主要优化多租户功能:
+* 创建租户时,自动创建用户、角色等信息
+* 支持租户套餐,自定义每个租户的菜单、操作、按钮等权限信息
+
+### 📈 Statistic
+
+* 总代码行数:71249
+* 源码代码行数:43921
+* 注释行数:16341
+* 单元测试用例数:341
 
 ### ⭐ New Features
 
@@ -41,6 +65,7 @@ TODO
 
 * 【修复】修复不支持根部门的问题 [commit](https://gitee.com/zhijiantianya/ruoyi-vue-pro/commit/fa62ace6af5ecc2f3030fa86d2ce222a1392f1a6)
 * 【修复】错误码存在重复的问题 [commit](https://gitee.com/zhijiantianya/ruoyi-vue-pro/commit/10ba70e1079d9a068c054ee677a7accc0b1209fe)
+* 【修复】角色的数据范围为仅本人时,登陆后获取权限列表报错的问题 [commit](https://gitee.com/zhijiantianya/ruoyi-vue-pro/commit/c61811a622a6829802e233e303bab091cc308f3a)
 
 ### 🔨 Dependency Upgrades
 

Some files were not shown because too many files changed in this diff