Kaynağa Gözat

1. 升级 1.3.0-snapshot 版本
2.【修复】biz-data-permission 组件的缓存机制,导致部分 SQL 未进行数据过滤

YunaiV 3 yıl önce
ebeveyn
işleme
a92acff99b

+ 1 - 1
pom.xml

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

+ 0 - 7
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/dept/impl/SysDeptServiceImpl.java

@@ -267,11 +267,4 @@ public class SysDeptServiceImpl implements SysDeptService {
         }
     }
 
-//    @Override
-//    @DataScope(deptAlias = "d")
-//    public List<SysDept> selectDeptList(SysDept dept)
-//    {
-//        return deptMapper.selectDeptList(dept);
-//    }
-
 }

+ 1 - 1
yudao-dependencies/pom.xml

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

+ 6 - 5
yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/core/db/DataPermissionDatabaseInterceptor.java

@@ -369,6 +369,11 @@ public class DataPermissionDatabaseInterceptor extends JsqlParserSupport impleme
             if (!rule.getTableNames().contains(table.getName())) {
                 continue;
             }
+            // 如果有匹配的规则,说明可重写。
+            // 为什么不是有 allExpression 非空才重写呢?在生成 column = value 过滤条件时,会因为 value 不存在,导致未重写。
+            // 这样导致第一次无 value,被标记成无需重写;但是第二次有 value,此时会需要重写。
+            ContextHolder.setRewrite(true);
+
             // 单条规则的条件
             String tableName = MyBatisUtils.getTableName(table);
             Expression oneExpress = rule.getExpression(tableName, table.getAlias());
@@ -377,10 +382,6 @@ public class DataPermissionDatabaseInterceptor extends JsqlParserSupport impleme
                     : new AndExpression(allExpression, oneExpress);
         }
 
-        // 如果条件非空,说明已经重写了
-        if (allExpression != null) {
-            ContextHolder.setRewrite(true);
-        }
         return allExpression;
     }
 
@@ -393,7 +394,7 @@ public class DataPermissionDatabaseInterceptor extends JsqlParserSupport impleme
         if (ContextHolder.getRewrite()) {
             return;
         }
-        // 重写,进行添加
+        // 重写,进行添加
         mappedStatementCache.addNoRewritable(ms, ContextHolder.getRules());
     }
 

+ 20 - 8
更新日志.md

@@ -2,8 +2,9 @@
 
 * 邮件
 * 钉钉、飞书等通知
+* Vue3 支持
 
-## [v1.3.0] 待定
+## [v1.4.0] 计划
 
 * 工作流
   * 修改表单为外置表单
@@ -17,8 +18,25 @@
   * 请假查询中,可以查询本人的请假申请, 和进度
   * 流程跟踪图 待实现
 
+## [v1.3.0] 进行中
 
-## [v1.2.0] 进行中
+### ⚠️ Warning
+
+### ⭐ New Features
+
+### 🐞 Bug Fixes
+
+* 【修复】biz-data-permission 组件的缓存机制,导致部分 SQL 未进行数据过滤
+
+### 🔨 Dependency Upgrades
+
+### 📝 TODO
+
+* 支付
+* 用户前台的社交登陆
+* 用户前台的修改手机、修改密码、忘记密码
+
+## [v1.2.0]
 
 ### ⚠️ Warning
 
@@ -44,12 +62,6 @@
 
 * 【引入】mockito-inline 3.6.28:Mockito 提供对 final、static 的支持
 
-### 📝 TODO
-
-* 支付
-* 用户前台的社交登陆
-* 用户前台的修改手机、修改密码、忘记密码
-
 ## [v1.1.0] 2021.10.25
 
 * 新增管理后台的企业微信、钉钉等社交登录