From 14fff831b8427bb8fc670d4492015bef584d1f28 Mon Sep 17 00:00:00 2001 From: gulongcheng <474084054@qq.com> Date: Tue, 3 Feb 2026 14:25:26 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E5=A4=B9=EF=BC=8C=E9=87=8D=E5=91=BD=E5=90=8D=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E5=A4=B9=E9=9C=80=E8=A6=81=E6=B7=BB=E5=8A=A0=E8=B7=B3=E8=BF=87?= =?UTF-8?q?=E6=9D=83=E9=99=90=E6=A0=A1=E9=AA=8C=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sdm/common/entity/req/data/DelDirReq.java | 3 +++ .../common/entity/req/data/RenameDirReq.java | 3 +++ .../impl/MinioFileIDataFileServiceImpl.java | 18 +++++++++++------- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/common/src/main/java/com/sdm/common/entity/req/data/DelDirReq.java b/common/src/main/java/com/sdm/common/entity/req/data/DelDirReq.java index 096630df..a493259d 100644 --- a/common/src/main/java/com/sdm/common/entity/req/data/DelDirReq.java +++ b/common/src/main/java/com/sdm/common/entity/req/data/DelDirReq.java @@ -31,4 +31,7 @@ public class DelDirReq { @Schema(description = "审批模板名称") private String templateName; + @Schema(description = "是否跳过权限校验,默认为false", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + private Boolean skipPermissionCheck = false; + } \ No newline at end of file diff --git a/common/src/main/java/com/sdm/common/entity/req/data/RenameDirReq.java b/common/src/main/java/com/sdm/common/entity/req/data/RenameDirReq.java index 59ce55a2..16b7f38e 100644 --- a/common/src/main/java/com/sdm/common/entity/req/data/RenameDirReq.java +++ b/common/src/main/java/com/sdm/common/entity/req/data/RenameDirReq.java @@ -29,4 +29,7 @@ public class RenameDirReq { // 0相对路径,1绝对路径 @Schema(description = "路径类型: 0相对路径, 1绝对路径", defaultValue = "0") private Integer type = 0; + + @Schema(description = "是否跳过权限校验,默认为false", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + private Boolean skipPermissionCheck = false; } \ No newline at end of file diff --git a/data/src/main/java/com/sdm/data/service/impl/MinioFileIDataFileServiceImpl.java b/data/src/main/java/com/sdm/data/service/impl/MinioFileIDataFileServiceImpl.java index effc9918..96c302e2 100644 --- a/data/src/main/java/com/sdm/data/service/impl/MinioFileIDataFileServiceImpl.java +++ b/data/src/main/java/com/sdm/data/service/impl/MinioFileIDataFileServiceImpl.java @@ -531,9 +531,11 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService { Integer dirType = deleteDirMetadataInfo.getDirType(); // 1. 权限校验(仅校验根目录删除权限) - boolean hasDeletePermission = fileUserPermissionService.hasFilePermission(rootDirId, ThreadLocalContext.getUserId(), FilePermissionEnum.DELETE); - if (!hasDeletePermission) { - return SdmResponse.failed("没有删除权限"); + if (!Boolean.TRUE.equals(req.getSkipPermissionCheck())) { + boolean hasDeletePermission = fileUserPermissionService.hasFilePermission(rootDirId, ThreadLocalContext.getUserId(), FilePermissionEnum.DELETE); + if (!hasDeletePermission) { + return SdmResponse.failed("没有删除权限"); + } } // 2. 空目录快速判定:检查是否存在子项 @@ -1298,10 +1300,12 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService { } // 2. 权限校验 - boolean hasWritePermission = fileUserPermissionService.hasFilePermission( - dirMetadataInfo.getId(), ThreadLocalContext.getUserId(), FilePermissionEnum.WRITE); - if (!hasWritePermission) { - return SdmResponse.failed("没有写入权限"); + if (!Boolean.TRUE.equals(req.getSkipPermissionCheck())) { + boolean hasWritePermission = fileUserPermissionService.hasFilePermission( + dirMetadataInfo.getId(), ThreadLocalContext.getUserId(), FilePermissionEnum.WRITE); + if (!hasWritePermission) { + return SdmResponse.failed("没有写入权限"); + } } String newName = req.getNewName();