Kaynağa Gözat

fix: 角色数据范围为全部时增加租户逻辑,租户用户只能看到自己租户的所有数据

yang kai 2 yıl önce
ebeveyn
işleme
113458ef29

+ 10 - 0
ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java

@@ -139,6 +139,16 @@ public class DataScopeAspect
             if (DATA_SCOPE_ALL.equals(dataScope))
             {
                 sqlString = new StringBuilder();
+                if( user.getTenantId() != null) { // 租户模式下,全部数据是当前租户下的全部数据
+                    if (StringUtils.isNotBlank(userAlias)) // 根据用户表的租户ID过滤
+                    {
+                        sqlString.append(StringUtils.format(" OR {}.tenant_id = {} ", userAlias, user.getTenantId()));
+                    }
+                    else // 根据部门表的租户ID过滤
+                    {
+                        sqlString.append(StringUtils.format(" OR {}.tenant_id = {} ", deptAlias, user.getTenantId()));
+                    }
+                }
                 conditions.add(dataScope);
                 break;
             }