From fffc4b9eab58ea6abd882255fc814722863392aa Mon Sep 17 00:00:00 2001 From: andy <1042025947@qq.com> Date: Wed, 16 Apr 2025 14:15:42 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=9D=83=E9=99=90=E7=AD=96?= =?UTF-8?q?=E7=95=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hd/cloud/handler/DataScopeHandler.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/handler/DataScopeHandler.java b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/handler/DataScopeHandler.java index 7ed1699..8440d72 100644 --- a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/handler/DataScopeHandler.java +++ b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/handler/DataScopeHandler.java @@ -46,12 +46,20 @@ public class DataScopeHandler implements MultiDataPermissionHandler { if(table != null && CollectionUtils.isNotEmpty(table.getNameParts()) && !"1".equals(RedisCloudUtils.getRoleType())){ String roleCode = RedisCloudUtils.getRoleCode(); Class mapperClazz = Class.forName(mappedStatementId.substring(0, mappedStatementId.lastIndexOf("."))); + //优先检查是不是单角色权限 + DataScope dataScope = mapperClazz.getAnnotation(DataScope.class); + if (ObjectUtils.isNotEmpty(dataScope) && dataScope.enabled()) { + if(dataScope.permissionObject().equals(roleCode)){ + return buildDataScopeByAnnotation(dataScope); + } + } + //如果不是, 检查多角色权限 DataScopes dataScopesList = mapperClazz.getAnnotation(DataScopes.class); if (ObjectUtils.isNotEmpty(dataScopesList)) { - for (DataScope dataScope :dataScopesList.value()){ - if(dataScope.enabled()){ - if(dataScope.permissionObject().equals(roleCode)){ - return buildDataScopeByAnnotation(dataScope); + for (DataScope dataScopes :dataScopesList.value()){ + if(dataScopes.enabled()){ + if(dataScopes.permissionObject().equals(roleCode)){ + return buildDataScopeByAnnotation(dataScopes); } } }