|
@@ -7,6 +7,7 @@ import com.backendsys.modules.common.aspect.SysLog;
|
|
|
import com.backendsys.modules.common.config.security.enums.SecurityEnum;
|
|
|
import com.backendsys.modules.common.config.security.utils.HttpRequestUtil;
|
|
|
import com.backendsys.modules.common.config.security.utils.SecurityUtil;
|
|
|
+import com.backendsys.modules.common.enums.MatchType;
|
|
|
import com.backendsys.modules.common.utils.Result;
|
|
|
import com.backendsys.modules.upload.entity.SysFile;
|
|
|
import com.backendsys.modules.upload.entity.SysFileMergeByMd5;
|
|
@@ -20,6 +21,7 @@ import org.springframework.validation.annotation.Validated;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
+import java.util.Arrays;
|
|
|
import java.util.List;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
@@ -88,7 +90,6 @@ public class SysFileController {
|
|
|
|
|
|
@SysLog("删除文件")
|
|
|
@Operation(summary = "删除文件")
|
|
|
- @PreAuthorize("@sr.hasPermission('1.1.6')")
|
|
|
@DeleteMapping("/api/upload/removeUploadFile")
|
|
|
public Result removeUploadFile(@Validated(SysFile.Delete.class) @RequestBody SysFile sysFile) {
|
|
|
|
|
@@ -99,9 +100,13 @@ public class SysFileController {
|
|
|
|
|
|
// 权限:
|
|
|
// - 删除自己 (需权限) (1.1.6)
|
|
|
- // - 删除全部 (需要子权限或超级管理员) (1.1.5)
|
|
|
- Long user_id = querySysFile.getUser_id();
|
|
|
- if (user_id.equals(SecurityUtil.getUserId()) && !securityUtil.hasPermission("1.1.5")) {
|
|
|
+ // - 删除其他人 (需要子权限或超级管理员) (1.1.5)
|
|
|
+ Long my_user_id = SecurityUtil.getUserId();
|
|
|
+ Long file_user_id = querySysFile.getUser_id();
|
|
|
+ if (file_user_id.equals(my_user_id) && !securityUtil.hasPermissions(Arrays.asList("1.1.5", "1.1.6"), MatchType.OR)) {
|
|
|
+ throw new CustException(SecurityEnum.NOAUTH);
|
|
|
+ }
|
|
|
+ if (!file_user_id.equals(my_user_id) && !securityUtil.hasPermission("1.1.5")) {
|
|
|
throw new CustException(SecurityEnum.NOAUTH);
|
|
|
}
|
|
|
|
|
@@ -110,7 +115,6 @@ public class SysFileController {
|
|
|
|
|
|
@SysLog("删除文件 (批量)")
|
|
|
@Operation(summary = "删除文件 (批量)")
|
|
|
- @PreAuthorize("@sr.hasPermission('1.1.6')")
|
|
|
@DeleteMapping("/api/upload/removeUploadFileBatch")
|
|
|
public Result removeUploadFileBatch(@Validated(SysFile.DeleteBatch.class) @RequestBody SysFile sysFile) {
|
|
|
|
|
@@ -123,9 +127,13 @@ public class SysFileController {
|
|
|
|
|
|
// 权限:
|
|
|
// - 删除自己 (需权限) (1.1.6)
|
|
|
- // - 删除全部 (需要子权限或超级管理员) (1.1.5)
|
|
|
+ // - 删除其他人 (需要子权限或超级管理员) (1.1.5)
|
|
|
+ Long my_user_id = SecurityUtil.getUserId();
|
|
|
List<Long> sysFileListByUserId = querySysFileList.stream().map(SysFile::getUser_id).collect(Collectors.toList());
|
|
|
- if (sysFileListByUserId.contains(SecurityUtil.getUserId()) && !securityUtil.hasPermission("1.1.5")) {
|
|
|
+ if (sysFileListByUserId.contains(my_user_id) && !securityUtil.hasPermissions(Arrays.asList("1.1.5", "1.1.6"), MatchType.OR)) {
|
|
|
+ throw new CustException(SecurityEnum.NOAUTH);
|
|
|
+ }
|
|
|
+ if (!sysFileListByUserId.contains(my_user_id) && !securityUtil.hasPermission("1.1.5")) {
|
|
|
throw new CustException(SecurityEnum.NOAUTH);
|
|
|
}
|
|
|
|