From a039241691ba8a589ec8366a42ae1968ede46303 Mon Sep 17 00:00:00 2001 From: taojinlong Date: Thu, 28 Jul 2022 16:35:04 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E6=95=B0=E6=8D=AE=E9=9B=86):=20=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E9=9B=86=E5=88=97=E6=9D=83=E9=99=90=E7=A9=BA=E6=8C=87?= =?UTF-8?q?=E9=92=88=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/dataset/PermissionService.java | 59 +++++++++++-------- 1 file changed, 35 insertions(+), 24 deletions(-) diff --git a/backend/src/main/java/io/dataease/service/dataset/PermissionService.java b/backend/src/main/java/io/dataease/service/dataset/PermissionService.java index 6ef55b9604..43794ed819 100644 --- a/backend/src/main/java/io/dataease/service/dataset/PermissionService.java +++ b/backend/src/main/java/io/dataease/service/dataset/PermissionService.java @@ -123,18 +123,24 @@ public class PermissionService { dataSetRowPermissionsDTO.setAuthTargetIds(Collections.singletonList(userId)); dataSetRowPermissionsDTO.setAuthTargetType("user"); datasetRowPermissions.addAll(rowPermissionService.searchRowPermissions(dataSetRowPermissionsDTO)); - dataSetRowPermissionsDTO.setAuthTargetIds(roleIds); - dataSetRowPermissionsDTO.setAuthTargetType("role"); - datasetRowPermissions.addAll(rowPermissionService.searchRowPermissions(dataSetRowPermissionsDTO)); - dataSetRowPermissionsDTO.setAuthTargetIds(Collections.singletonList(deptId)); - dataSetRowPermissionsDTO.setAuthTargetType("dept"); - datasetRowPermissions.addAll(rowPermissionService.searchRowPermissions(dataSetRowPermissionsDTO)); + + if(CollectionUtils.isNotEmpty(roleIds)){ + dataSetRowPermissionsDTO.setAuthTargetIds(roleIds); + dataSetRowPermissionsDTO.setAuthTargetType("role"); + datasetRowPermissions.addAll(rowPermissionService.searchRowPermissions(dataSetRowPermissionsDTO)); + + } + + if(deptId != null){ + dataSetRowPermissionsDTO.setAuthTargetIds(Collections.singletonList(deptId)); + dataSetRowPermissionsDTO.setAuthTargetType("dept"); + datasetRowPermissions.addAll(rowPermissionService.searchRowPermissions(dataSetRowPermissionsDTO)); + } dataSetRowPermissionsDTO.setAuthTargetType("sysParams"); dataSetRowPermissionsDTO.setAuthTargetIds(null); datasetRowPermissions.addAll(rowPermissionService.searchRowPermissions(dataSetRowPermissionsDTO)); - values.put("${sysParams.userId}", userEntity.getUsername()); values.put("${sysParams.userName}", userEntity.getNickName()); values.put("${sysParams.userEmail}", userEntity.getEmail()); @@ -170,28 +176,33 @@ public class PermissionService { dataSetColumnPermissionsDTO.setAuthTargetType("user"); datasetColumnPermissions.addAll(columnPermissionService.searchPermissions(dataSetColumnPermissionsDTO)); - dataSetColumnPermissionsDTO.setAuthTargetIds(roleIds); - dataSetColumnPermissionsDTO.setAuthTargetType("role"); - List roleColumnPermissionsDTOS = new ArrayList<>(); - for (DataSetColumnPermissionsDTO columnPermissionsDTO : columnPermissionService.searchPermissions(dataSetColumnPermissionsDTO)) { - columnPermissionsDTO.getWhiteListUser(); - List userIdList = new Gson().fromJson(columnPermissionsDTO.getWhiteListUser(), new TypeToken>() {}.getType()); - if(!userIdList.contains(userId)){ - roleColumnPermissionsDTOS.add(columnPermissionsDTO); + if(CollectionUtils.isNotEmpty(roleIds)){ + dataSetColumnPermissionsDTO.setAuthTargetIds(roleIds); + dataSetColumnPermissionsDTO.setAuthTargetType("role"); + List roleColumnPermissionsDTOS = new ArrayList<>(); + for (DataSetColumnPermissionsDTO columnPermissionsDTO : columnPermissionService.searchPermissions(dataSetColumnPermissionsDTO)) { + columnPermissionsDTO.getWhiteListUser(); + List userIdList = new Gson().fromJson(columnPermissionsDTO.getWhiteListUser(), new TypeToken>() {}.getType()); + if(!userIdList.contains(userId)){ + roleColumnPermissionsDTOS.add(columnPermissionsDTO); + } } + datasetColumnPermissions.addAll(roleColumnPermissionsDTOS); } - datasetColumnPermissions.addAll(roleColumnPermissionsDTOS); - dataSetColumnPermissionsDTO.setAuthTargetIds(Collections.singletonList(deptId)); - dataSetColumnPermissionsDTO.setAuthTargetType("dept"); - List deptColumnPermissionsDTOS = new ArrayList<>(); - for (DataSetColumnPermissionsDTO columnPermissionsDTO : columnPermissionService.searchPermissions(dataSetColumnPermissionsDTO)) { - List userIdList = new Gson().fromJson(columnPermissionsDTO.getWhiteListUser(), new TypeToken>() {}.getType()); - if(!userIdList.contains(userId)){ - deptColumnPermissionsDTOS.add(columnPermissionsDTO); + if(deptId != null){ + dataSetColumnPermissionsDTO.setAuthTargetIds(Collections.singletonList(deptId)); + dataSetColumnPermissionsDTO.setAuthTargetType("dept"); + List deptColumnPermissionsDTOS = new ArrayList<>(); + for (DataSetColumnPermissionsDTO columnPermissionsDTO : columnPermissionService.searchPermissions(dataSetColumnPermissionsDTO)) { + List userIdList = new Gson().fromJson(columnPermissionsDTO.getWhiteListUser(), new TypeToken>() {}.getType()); + if(!userIdList.contains(userId)){ + deptColumnPermissionsDTOS.add(columnPermissionsDTO); + } } + datasetColumnPermissions.addAll(deptColumnPermissionsDTOS); } - datasetColumnPermissions.addAll(deptColumnPermissionsDTOS); + return datasetColumnPermissions; }