From f30fe5e11d41bab425fe50a645aafc94246c2460 Mon Sep 17 00:00:00 2001 From: yubaolee Date: Sat, 10 Jan 2026 11:15:33 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9Bfix:=20#ICZD3Z?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- OpenAuth.App/Base/SqlSugarBaseApp.cs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/OpenAuth.App/Base/SqlSugarBaseApp.cs b/OpenAuth.App/Base/SqlSugarBaseApp.cs index b9727b9c..b0066dbb 100644 --- a/OpenAuth.App/Base/SqlSugarBaseApp.cs +++ b/OpenAuth.App/Base/SqlSugarBaseApp.cs @@ -11,6 +11,7 @@ using OpenAuth.Repository.Domain; using SqlSugar; using Autofac; using Infrastructure.Extensions.AutofacManager; +using MySql.Data.MySqlClient.Memcached; namespace OpenAuth.App { @@ -69,7 +70,15 @@ namespace OpenAuth.App if (loginUser.User.Account == Define.SYSTEM_USERNAME) return SugarClient.Queryable(); //超级管理员特权 var moduleName = typeof(T).Name; - var rule = SugarClient.Queryable().First(u => u.SourceCode == moduleName); + + //数据权限永远只用默认连接字符串,避免租户隔离 + ISqlSugarClient defualtClient = SugarClient; + var currentConfigId = SugarClient.CurrentConnectionConfig.ConfigId; + if(currentConfigId != null && currentConfigId.ToString() !=""){ + defualtClient = SugarClient.AsTenant().GetConnection(Define.DEFAULT_TENANT_ID); + } + var rule = defualtClient.Queryable().First(u => u.SourceCode == moduleName); + if (rule == null) return SugarClient.Queryable(); //没有设置数据规则,那么视为该资源允许被任何主体查看 if (rule.PrivilegeRules.Contains(Define.DATAPRIVILEGE_LOGINUSER) || rule.PrivilegeRules.Contains(Define.DATAPRIVILEGE_LOGINROLE)||