diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/feign/SaasPermissionGroupScopeApi.java b/tyr-api/src/main/java/cn/axzo/tyr/client/feign/SaasPermissionGroupScopeApi.java index 09c48e37..df318a73 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/feign/SaasPermissionGroupScopeApi.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/feign/SaasPermissionGroupScopeApi.java @@ -3,7 +3,7 @@ package cn.axzo.tyr.client.feign; import org.springframework.cloud.openfeign.FeignClient; /** - * 权限集作用范围 TODO + * 权限集作用范围 */ @FeignClient(name = "tyr", url = "${axzo.service.tyr:http://tyr:8080/api/saasPermissionGroup}") public interface SaasPermissionGroupScopeApi { diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/PermissionGroupImpl.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/PermissionGroupImpl.java index a1a132d1..8f0781f7 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/PermissionGroupImpl.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/PermissionGroupImpl.java @@ -106,21 +106,20 @@ public class PermissionGroupImpl implements PermissionGroupService { .list(); // 过滤权限集作用范围 List saasPermissionGroupScopes = saasPermissionGroupScopesSource.stream().filter(e -> { + List workspaceIdWithOutCommon = req.getWorkspaceId().stream().filter(workspaceId -> !workspaceId.equals(-1l)).collect(Collectors.toList()); + List ouIdWithOutCommon = req.getOuId().stream().filter(ouId -> !ouId.equals(-1l)).collect(Collectors.toList()); // 过滤出选中的工作台 - if (CollectionUtils.isNotEmpty(req.getWorkspaceId()) - && PermissionScopeType.WORKSPACE.getCode().equals(e.getScopeType()) - && req.getWorkspaceId().contains(e.getScopeId())) { - req.getWorkspaceId().contains(e.getScopeId()); - return true; + if (PermissionScopeType.WORKSPACE.getCode().equals(e.getScopeType())) { + if (CollectionUtils.isNotEmpty(workspaceIdWithOutCommon) && ! workspaceIdWithOutCommon.contains(e.getScopeId())) { + return false; + } + }else { + // 过滤出选中的单位 + if (CollectionUtils.isNotEmpty(ouIdWithOutCommon) && ! ouIdWithOutCommon.contains(e.getScopeId())) { + return false; + } } - // 过滤出选中的单位 - if (CollectionUtils.isNotEmpty(req.getOuId()) - && PermissionScopeType.OU.getCode().equals(e.getScopeType()) - && req.getOuId().contains(e.getScopeId())) { - req.getWorkspaceId().contains(e.getScopeId()); - return true; - } - return false; + return true; }).collect(Collectors.toList()); // 组装填充字段 List finalFeature = feature; @@ -192,21 +191,20 @@ public class PermissionGroupImpl implements PermissionGroupService { .list(); // 过滤权限集作用范围 List saasPermissionGroupScopes = saasPermissionGroupScopesSource.stream().filter(e -> { + List workspaceIdWithOutCommon = req.getWorkspaceId().stream().filter(workspaceId -> !workspaceId.equals(-1l)).collect(Collectors.toList()); + List ouIdWithOutCommon = req.getOuId().stream().filter(ouId -> !ouId.equals(-1l)).collect(Collectors.toList()); // 过滤出选中的工作台 - if (CollectionUtils.isNotEmpty(req.getWorkspaceId()) - && PermissionScopeType.WORKSPACE.getCode().equals(e.getScopeType()) - && req.getWorkspaceId().contains(e.getScopeId())) { - req.getWorkspaceId().contains(e.getScopeId()); - return true; + if (PermissionScopeType.WORKSPACE.getCode().equals(e.getScopeType())) { + if (CollectionUtils.isNotEmpty(workspaceIdWithOutCommon) && ! workspaceIdWithOutCommon.contains(e.getScopeId())) { + return false; + } + }else { + // 过滤出选中的单位 + if (CollectionUtils.isNotEmpty(ouIdWithOutCommon) && ! ouIdWithOutCommon.contains(e.getScopeId())) { + return false; + } } - // 过滤出选中的单位 - if (CollectionUtils.isNotEmpty(req.getOuId()) - && PermissionScopeType.OU.getCode().equals(e.getScopeType()) - && req.getOuId().contains(e.getScopeId())) { - req.getWorkspaceId().contains(e.getScopeId()); - return true; - } - return false; + return true; }).collect(Collectors.toList()); // 组装填充字段 List finalFeature = feature;