From 9cc43d10955e159a6a94c2edb077bb9502d966a2 Mon Sep 17 00:00:00 2001 From: junjun Date: Mon, 28 Mar 2022 15:51:18 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix:=20=E5=A2=9E=E5=8A=A0=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/dataset/DataSetGroupController.java | 2 +- .../io/dataease/service/dataset/DataSetGroupService.java | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/backend/src/main/java/io/dataease/controller/dataset/DataSetGroupController.java b/backend/src/main/java/io/dataease/controller/dataset/DataSetGroupController.java index 876c7ab312..c16047128f 100644 --- a/backend/src/main/java/io/dataease/controller/dataset/DataSetGroupController.java +++ b/backend/src/main/java/io/dataease/controller/dataset/DataSetGroupController.java @@ -42,7 +42,7 @@ public class DataSetGroupController { }, logical = Logical.AND) @ApiOperation("保存") @PostMapping("/save") - public DataSetGroupDTO save(@RequestBody DatasetGroup datasetGroup) { + public DataSetGroupDTO save(@RequestBody DatasetGroup datasetGroup) throws Exception { return dataSetGroupService.save(datasetGroup); } diff --git a/backend/src/main/java/io/dataease/service/dataset/DataSetGroupService.java b/backend/src/main/java/io/dataease/service/dataset/DataSetGroupService.java index c7144d4129..c6b833306b 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DataSetGroupService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetGroupService.java @@ -44,7 +44,10 @@ public class DataSetGroupService { private SysAuthService sysAuthService; @DeCleaner(DePermissionType.DATASET) - public DataSetGroupDTO save(DatasetGroup datasetGroup) { + public DataSetGroupDTO save(DatasetGroup datasetGroup) throws Exception { + if (StringUtils.isEmpty(datasetGroup.getType())) { + throw new Exception("type can not be empty"); + } checkName(datasetGroup); if (StringUtils.isEmpty(datasetGroup.getId())) { datasetGroup.setId(UUID.randomUUID().toString()); @@ -65,7 +68,7 @@ public class DataSetGroupService { public void delete(String id) throws Exception { Assert.notNull(id, "id cannot be null"); - sysAuthService.checkTreeNoManageCount("dataset",id); + sysAuthService.checkTreeNoManageCount("dataset", id); DatasetGroup dg = datasetGroupMapper.selectByPrimaryKey(id); DataSetGroupRequest datasetGroup = new DataSetGroupRequest(); From fbed25f91e221734fcb8e1d072d9452696e7e901 Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Mon, 28 Mar 2022 16:38:33 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix:=20aop=E4=B8=AD=E4=B8=8D=E8=83=BD?= =?UTF-8?q?=E6=8D=95=E8=8E=B7=E5=8E=9F=E6=96=B9=E6=B3=95=E5=BC=82=E5=B8=B8?= =?UTF-8?q?=E5=A0=86=E6=A0=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../aop/DePermissionAnnotationHandler.java | 31 +++++++++++-------- frontend/src/styles/index.scss | 1 + 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/backend/src/main/java/io/dataease/auth/aop/DePermissionAnnotationHandler.java b/backend/src/main/java/io/dataease/auth/aop/DePermissionAnnotationHandler.java index 6bf453bbee..b051f06ad5 100644 --- a/backend/src/main/java/io/dataease/auth/aop/DePermissionAnnotationHandler.java +++ b/backend/src/main/java/io/dataease/auth/aop/DePermissionAnnotationHandler.java @@ -26,12 +26,14 @@ import java.util.stream.Collectors; public class DePermissionAnnotationHandler { @Around(value = "@annotation(io.dataease.auth.annotation.DePermissions)") - public Object PermissionsAround(ProceedingJoinPoint point) { + public Object PermissionsAround(ProceedingJoinPoint point) throws Throwable{ + if (AuthUtils.getUser().getIsAdmin()) { + return point.proceed(point.getArgs()); + } + Boolean access = false; try { - if (AuthUtils.getUser().getIsAdmin()) { - return point.proceed(point.getArgs()); - } + MethodSignature ms = (MethodSignature) point.getSignature(); Method method = ms.getMethod(); DePermissions annotation = method.getAnnotation(DePermissions.class); @@ -43,37 +45,40 @@ public class DePermissionAnnotationHandler { DePermission permission = dePermissions[i]; boolean currentAccess = access(args[permission.paramIndex()], permission, 0); if (!currentAccess) { - return null; + access = false; + break; } } } else { List exceptions = new ArrayList<>(); - Boolean someAccess = false; for (int i = 0; i < dePermissions.length; i++) { DePermission permission = dePermissions[i]; try { boolean currentAccess = access(args[permission.paramIndex()], permission, 0); if (currentAccess) { - someAccess = true; + access = true; break; } } catch (Exception e) { exceptions.add(e); } } - if (!someAccess) { + if (!access && exceptions.size() > 0) { throw exceptions.get(0); } } - return point.proceed(point.getArgs()); + } catch (Throwable throwable) { LogUtil.error(throwable.getMessage(), throwable); throw new RuntimeException(throwable.getMessage()); } + + return access ? point.proceed(point.getArgs()) : null; } @Around(value = "@annotation(io.dataease.auth.annotation.DePermission)") - public Object PermissionAround(ProceedingJoinPoint point) { + public Object PermissionAround(ProceedingJoinPoint point) throws Throwable{ + Boolean access = false; try { if (AuthUtils.getUser().getIsAdmin()) { return point.proceed(point.getArgs()); @@ -84,14 +89,14 @@ public class DePermissionAnnotationHandler { DePermission annotation = method.getAnnotation(DePermission.class); Object arg = point.getArgs()[annotation.paramIndex()]; if (access(arg, annotation, 0)) { - return point.proceed(point.getArgs()); + access = true; } - return false; - } catch (Throwable throwable) { LogUtil.error(throwable.getMessage(), throwable); throw new RuntimeException(throwable.getMessage()); } + + return access ? point.proceed(point.getArgs()) : null; } private Boolean access(Object arg, DePermission annotation, int layer) throws Exception { diff --git a/frontend/src/styles/index.scss b/frontend/src/styles/index.scss index 1f6106642c..02517aa31e 100644 --- a/frontend/src/styles/index.scss +++ b/frontend/src/styles/index.scss @@ -151,6 +151,7 @@ div:focus { .el-tabs__content { height: calc(100% - 55px) !important; + margin-top: 5px; .el-tab-pane { height: 100% !important;