diff --git a/core/backend/src/main/java/io/dataease/auth/service/impl/ExtAuthServiceImpl.java b/core/backend/src/main/java/io/dataease/auth/service/impl/ExtAuthServiceImpl.java index 2761ea7819..9be75d50aa 100644 --- a/core/backend/src/main/java/io/dataease/auth/service/impl/ExtAuthServiceImpl.java +++ b/core/backend/src/main/java/io/dataease/auth/service/impl/ExtAuthServiceImpl.java @@ -2,6 +2,7 @@ package io.dataease.auth.service.impl; import io.dataease.auth.entity.AuthItem; import io.dataease.auth.service.ExtAuthService; +import io.dataease.commons.constants.SysAuthConstants; import io.dataease.plugins.common.base.domain.SysAuth; import io.dataease.ext.ExtAuthMapper; import io.dataease.commons.constants.AuthConstants; @@ -66,59 +67,95 @@ public class ExtAuthServiceImpl implements ExtAuthService { @Cacheable(value = AuthConstants.USER_LINK_NAME, key = "'user' + #userId") @Override public List dataSourceIdByUser(Long userId) { - return extAuthMapper.dataSourceIdByUser(userId.toString()); + return extAuthMapper.queryAuthItems( + SysAuthConstants.AUTH_TARGET_TYPE_USER, + userId.toString(), + SysAuthConstants.AUTH_SOURCE_TYPE_DATASOURCE + ); } @Cacheable(value = AuthConstants.USER_DATASET_NAME, key = "'user' + #userId") @Override public List dataSetIdByUser(Long userId) { - return extAuthMapper.dataSetIdByUser(userId.toString()); + return extAuthMapper.queryAuthItems( + SysAuthConstants.AUTH_TARGET_TYPE_USER, + userId.toString(), + SysAuthConstants.AUTH_SOURCE_TYPE_DATASET + ); } @Cacheable(value = AuthConstants.USER_PANEL_NAME, key = "'user' + #userId") @Override public List panelIdByUser(Long userId) { - return extAuthMapper.panelIdByUser(userId.toString()); + return extAuthMapper.queryAuthItems( + SysAuthConstants.AUTH_TARGET_TYPE_USER, + userId.toString(), + SysAuthConstants.AUTH_SOURCE_TYPE_PANEL + ); } @Cacheable(value = AuthConstants.ROLE_LINK_NAME, key = "'role' + #roleId") @Override public List dataSourceIdByRole(Long roleId) { - return extAuthMapper.dataSourceIdByRole(roleId.toString()); + return extAuthMapper.queryAuthItems( + SysAuthConstants.AUTH_TARGET_TYPE_ROLE, + roleId.toString(), + SysAuthConstants.AUTH_SOURCE_TYPE_DATASOURCE + ); } @Cacheable(value = AuthConstants.ROLE_DATASET_NAME, key = "'role' + #roleId") @Override public List dataSetIdByRole(Long roleId) { - return extAuthMapper.dataSetIdByRole(roleId.toString()); + return extAuthMapper.queryAuthItems( + SysAuthConstants.AUTH_TARGET_TYPE_ROLE, + roleId.toString(), + SysAuthConstants.AUTH_SOURCE_TYPE_DATASET + ); } @Cacheable(value = AuthConstants.ROLE_PANEL_NAME, key = "'role' + #roleId") @Override public List panelIdByRole(Long roleId) { - return extAuthMapper.panelIdByRole(roleId.toString()); + return extAuthMapper.queryAuthItems( + SysAuthConstants.AUTH_TARGET_TYPE_ROLE, + roleId.toString(), + SysAuthConstants.AUTH_SOURCE_TYPE_PANEL + ); } @Cacheable(value = AuthConstants.DEPT_LINK_NAME, key = "'dept' + #deptId") @Override public List dataSourceIdByDept(Long deptId) { if (ObjectUtils.isEmpty(deptId)) return emptyResult; - return extAuthMapper.dataSourceIdByDept(deptId.toString()); + return extAuthMapper.queryAuthItems( + SysAuthConstants.AUTH_TARGET_TYPE_DEPT, + deptId.toString(), + SysAuthConstants.AUTH_SOURCE_TYPE_DATASOURCE + ); } @Cacheable(value = AuthConstants.DEPT_DATASET_NAME, key = "'dept' + #deptId") @Override public List dataSetIdByDept(Long deptId) { if (ObjectUtils.isEmpty(deptId)) return emptyResult; - return extAuthMapper.dataSetIdByDept(deptId.toString()); + return extAuthMapper.queryAuthItems( + SysAuthConstants.AUTH_TARGET_TYPE_DEPT, + deptId.toString(), + SysAuthConstants.AUTH_SOURCE_TYPE_DATASET + ); } @Cacheable(value = AuthConstants.DEPT_PANEL_NAME, key = "'dept' + #deptId") @Override public List panelIdByDept(Long deptId) { if (ObjectUtils.isEmpty(deptId)) return emptyResult; - return extAuthMapper.panelIdByDept(deptId.toString()); + return extAuthMapper.queryAuthItems( + SysAuthConstants.AUTH_TARGET_TYPE_DEPT, + deptId.toString(), + SysAuthConstants.AUTH_SOURCE_TYPE_PANEL + ); } @Caching(evict = { diff --git a/core/backend/src/main/java/io/dataease/commons/constants/SysAuthConstants.java b/core/backend/src/main/java/io/dataease/commons/constants/SysAuthConstants.java index a541e0f488..051f273df1 100644 --- a/core/backend/src/main/java/io/dataease/commons/constants/SysAuthConstants.java +++ b/core/backend/src/main/java/io/dataease/commons/constants/SysAuthConstants.java @@ -7,6 +7,12 @@ package io.dataease.commons.constants; */ public class SysAuthConstants { + public final static String AUTH_TARGET_TYPE_USER = "user"; + + public final static String AUTH_TARGET_TYPE_ROLE = "role"; + + public final static String AUTH_TARGET_TYPE_DEPT = "dept"; + public final static String AUTH_SOURCE_TYPE_PANEL = "panel"; public final static String AUTH_SOURCE_TYPE_DATASET = "dataset"; diff --git a/core/backend/src/main/java/io/dataease/ext/ExtAuthMapper.java b/core/backend/src/main/java/io/dataease/ext/ExtAuthMapper.java index fe4fc5ca88..0e35cccd6e 100644 --- a/core/backend/src/main/java/io/dataease/ext/ExtAuthMapper.java +++ b/core/backend/src/main/java/io/dataease/ext/ExtAuthMapper.java @@ -16,17 +16,9 @@ public interface ExtAuthMapper { List queryByResource(@Param("resourceId") String resourceId); - List dataSourceIdByUser(String userId); - List dataSetIdByUser(String userId); - List panelIdByUser(String userId); - - List dataSourceIdByRole(String roleId); - List dataSetIdByRole(String roleId); - List panelIdByRole(String roleId); - - List dataSourceIdByDept(String deptId); - List dataSetIdByDept(String deptId); - List panelIdByDept(String deptId); + List queryAuthItems(@Param("authTargetType") String authTargetType, + @Param("authTarget") String authTarget, + @Param("sourceType") String sourceType); String parentResource(@Param("resourceId") String resourceId, @Param("type") String type); } diff --git a/core/backend/src/main/java/io/dataease/ext/ExtAuthMapper.xml b/core/backend/src/main/java/io/dataease/ext/ExtAuthMapper.xml index fded977e66..1f81c468ff 100644 --- a/core/backend/src/main/java/io/dataease/ext/ExtAuthMapper.xml +++ b/core/backend/src/main/java/io/dataease/ext/ExtAuthMapper.xml @@ -33,121 +33,16 @@ where a.auth_source = #{resourceId} and b.privilege_value = 1 - SELECT auth_source, MAX(d.privilege_type) as level FROM sys_auth a LEFT JOIN sys_auth_detail d on d.auth_id = a.id WHERE - auth_source_type = 'link' - AND auth_target_type = 'user' - AND auth_target = #{userId} - AND d.privilege_value = 1 - GROUP BY a.id - - - - - - - - - @@ -156,6 +51,4 @@ select GET_V_AUTH_MODEL_WITH_PARENT(#{resourceId}, #{type}) - -