From 68e98e231e9afe3070286fae524417746eabdacf Mon Sep 17 00:00:00 2001 From: wxz Date: Wed, 29 Apr 2020 14:51:48 +0800 Subject: [PATCH] =?UTF-8?q?=E7=89=88=E6=9C=AC=E5=8D=87=E7=BA=A7:=E5=89=8D?= =?UTF-8?q?=E7=AB=AF=E6=9F=A5=E8=AF=A2=E6=9D=83=E9=99=90=EF=BC=8C=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0all=E6=89=80=E6=9C=89=E6=9D=83=E9=99=90=E7=9A=84?= =?UTF-8?q?=E6=9D=A1=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mybatis/aspect/DataFilterAspect.java | 83 ------------------- .../tools/constant/OpeScopeConstant.java | 4 + epmet-module/gov-mine/gov-mine-server/pom.xml | 2 +- .../epmet/service/impl/AccessServiceImpl.java | 9 +- 4 files changed, 12 insertions(+), 86 deletions(-) diff --git a/epmet-commons/epmet-commons-mybatis/src/main/java/com/epmet/commons/mybatis/aspect/DataFilterAspect.java b/epmet-commons/epmet-commons-mybatis/src/main/java/com/epmet/commons/mybatis/aspect/DataFilterAspect.java index 78b2ba49e0..47f1b391db 100644 --- a/epmet-commons/epmet-commons-mybatis/src/main/java/com/epmet/commons/mybatis/aspect/DataFilterAspect.java +++ b/epmet-commons/epmet-commons-mybatis/src/main/java/com/epmet/commons/mybatis/aspect/DataFilterAspect.java @@ -409,87 +409,4 @@ public class DataFilterAspect { } return scopeStrs; } - - /** - * 模拟范围数据 - * - * @return - */ - private Set genScopeDtos() { - OperationScopeDTO scopeDTO1 = new OperationScopeDTO(); - scopeDTO1.setScopeKey("org_curr"); - scopeDTO1.setScopeName("本机关"); - scopeDTO1.setScopeIndex("ac_0"); - - OperationScopeDTO scopeDTO2 = new OperationScopeDTO(); - scopeDTO2.setScopeKey("org_curr_and_sub"); - scopeDTO2.setScopeName("本机关及下级"); - scopeDTO2.setScopeIndex("ac_501"); - - OperationScopeDTO scopeDTO3 = new OperationScopeDTO(); - scopeDTO3.setScopeKey("org_curr_sub"); - scopeDTO3.setScopeName("本机关的下级"); - scopeDTO3.setScopeIndex("ac_502"); - - OperationScopeDTO scopeDTO4 = new OperationScopeDTO(); - scopeDTO4.setScopeKey("org_equal_and_sub"); - scopeDTO4.setScopeName("同级机关及下级"); - scopeDTO4.setScopeIndex("ae_601"); - - OperationScopeDTO scopeDTO5 = new OperationScopeDTO(); - scopeDTO5.setScopeKey("org_equal_sub"); - scopeDTO5.setScopeName("同级机关的下级"); - scopeDTO5.setScopeIndex("ae_602"); - - Set scopeDTOS = new HashSet<>(); - scopeDTOS.add(scopeDTO1); - scopeDTOS.add(scopeDTO2); - scopeDTOS.add(scopeDTO3); - scopeDTOS.add(scopeDTO4); - scopeDTOS.add(scopeDTO5); - return scopeDTOS; - } - - ///** - // * 获取数据过滤的SQL - // */ - //@Deprecated - //private String getSqlFilter(UserDetail user, JoinPoint point){ - // MethodSignature signature = (MethodSignature) point.getSignature(); - // DataFilter dataFilter = signature.getMethod().getAnnotation(DataFilter.class); - // //获取表的别名 - // String tableAlias = dataFilter.tableAlias(); - // if(StringUtils.isNotBlank(tableAlias)){ - // tableAlias += "."; - // } - // - // StringBuilder sqlFilter = new StringBuilder(); - // - // //查询条件前缀 - // String prefix = dataFilter.prefix(); - // if(StringUtils.isNotBlank(prefix)){ - // sqlFilter.append(" ").append(prefix); - // } - // - // sqlFilter.append(" ("); - // - // //部门ID列表 - // List deptIdList = user.getDeptIdList(); - // if(CollUtil.isNotEmpty(deptIdList)){ - // sqlFilter.append(tableAlias).append(dataFilter.deptId()); - // - // sqlFilter.append(" in(").append(StringUtils.join(deptIdList, ",")).append(")"); - // } - // - // //查询本人数据 - // if (dataFilter.isPendingCreator()) { - // if(CollUtil.isNotEmpty(deptIdList)){ - // sqlFilter.append(" or "); - // } - // sqlFilter.append(tableAlias).append(dataFilter.userId()).append("=").append(user.getId()); - // } - // sqlFilter.append(")"); - // - // return sqlFilter.toString(); - //} } diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/OpeScopeConstant.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/OpeScopeConstant.java index 9d11c7d3b3..f2c29f7238 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/OpeScopeConstant.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/OpeScopeConstant.java @@ -1,6 +1,10 @@ package com.epmet.commons.tools.constant; public class OpeScopeConstant { + + // 权限覆盖所有范围 + public static final String ORG_ALL = "org_all"; + //"同级组织的下级" public static final String ORG_EQUAL_SUB = "org_equal_sub"; //"同级组织及下级" diff --git a/epmet-module/gov-mine/gov-mine-server/pom.xml b/epmet-module/gov-mine/gov-mine-server/pom.xml index 46cafb3e14..9433e1feaf 100644 --- a/epmet-module/gov-mine/gov-mine-server/pom.xml +++ b/epmet-module/gov-mine/gov-mine-server/pom.xml @@ -2,7 +2,7 @@ - 0.3.4 + 0.3.5 com.epmet gov-mine diff --git a/epmet-module/gov-mine/gov-mine-server/src/main/java/com/epmet/service/impl/AccessServiceImpl.java b/epmet-module/gov-mine/gov-mine-server/src/main/java/com/epmet/service/impl/AccessServiceImpl.java index 1142b84700..71c1d5c47d 100644 --- a/epmet-module/gov-mine/gov-mine-server/src/main/java/com/epmet/service/impl/AccessServiceImpl.java +++ b/epmet-module/gov-mine/gov-mine-server/src/main/java/com/epmet/service/impl/AccessServiceImpl.java @@ -115,8 +115,13 @@ public class AccessServiceImpl implements AccessService { */ private HashSet filterOpesByScope(String currOrgRelation, Set roleOperations) { HashSet opeKeys = new HashSet<>(); - roleOperations.stream().forEach(opeScope -> { + for (RoleOpeScopeResultDTO opeScope : roleOperations) { String scopeKey = opeScope.getScopeKey(); + if (OpeScopeConstant.ORG_ALL.equals(scopeKey)) { + // 如果该操作的范围是org_all,那就具有所有范围的该操作权限,不需要根据上下级关系判断 + opeKeys.add(opeScope.getOperationKey()); + continue; + } switch (currOrgRelation) { case ORG_RELATION_SAME:// 就在所在机构下 if (OpeScopeConstant.ORG_CURR.equals(scopeKey) @@ -138,7 +143,7 @@ public class AccessServiceImpl implements AccessService { } break; } - }); + } return opeKeys; }