fix(87643): 资料中心-有管理权限的人对文件夹进行操作提示无权限

This commit is contained in:
yjz
2024-07-29 11:57:03 +08:00
parent feeb980b82
commit fa749ed951
@@ -1,5 +1,6 @@
package com.jero.modules.laws.dataCenter.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -15,11 +16,14 @@ import com.jero.modules.laws.common.constant.FieldCommon;
import com.jero.modules.laws.common.constant.MessageTemplateCodeCommon;
import com.jero.modules.laws.common.util.CurrentUserUtil;
import com.jero.modules.laws.common.util.DateUtil;
import com.jero.modules.laws.dataCenter.common.DataCenterCommon;
import com.jero.modules.laws.dataCenter.entity.LawsDataCenterFile;
import com.jero.modules.laws.dataCenter.entity.LawsDataCenterFolder;
import com.jero.modules.laws.dataCenter.entity.LawsDataCenterFolderSublist;
import com.jero.modules.laws.dataCenter.mapper.LawsDataCenterFileMapper;
import com.jero.modules.laws.dataCenter.service.ILawsDataCenterFileService;
import com.jero.modules.laws.dataCenter.service.ILawsDataCenterFolderService;
import com.jero.modules.laws.dataCenter.service.LawsDataCenterFolderSublistService;
import com.jero.modules.oss.entity.OSSFile;
import com.jero.modules.oss.service.IOSSFileService;
import com.spire.ms.System.Collections.ArrayList;
@@ -33,6 +37,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.stream.Collectors;
/**
@@ -54,6 +59,8 @@ public class LawsDataCenterFileServiceImpl extends ServiceImpl<LawsDataCenterFil
private SendMessageAPI sendMessageAPI;
@Autowired
private LawsDataCenterFileMapper lawsDataCenterFileMapper;
@Autowired
private LawsDataCenterFolderSublistService lawsDataCenterFolderSublistService;
@Value("${adminRoleCode}")
private String adminRoleCode;
private static final String UPLOADER = "uploader";
@@ -198,8 +205,15 @@ public class LawsDataCenterFileServiceImpl extends ServiceImpl<LawsDataCenterFil
throw new JeroBootException(ResultCommon.NO_PERMISSION);
}
LawsDataCenterFolder folder = lawsDataCenterFolderService.getById(file.getFolderId());
List<LawsDataCenterFolderSublist> getAuthManageList = lawsDataCenterFolderSublistService.list(
new LambdaQueryWrapper<LawsDataCenterFolderSublist>()
.eq(LawsDataCenterFolderSublist::getDataCenterFolderId, file.getFolderId())
.eq(LawsDataCenterFolderSublist::getType, DataCenterCommon.AUTH_MANAGE));
String userIds = getAuthManageList.stream()
.map(LawsDataCenterFolderSublist::getUserId)
.collect(Collectors.joining(","));
if (!CurrentUserUtil.getId().equals(folder.getOwnerId()) &&
(StringUtils.isBlank(folder.getAuthManageIds()) || !folder.getAuthManageIds().contains(CurrentUserUtil.getId()))) {
(StringUtils.isBlank(userIds) || !userIds.contains(CurrentUserUtil.getId()))) {
throw new JeroBootException(ResultCommon.NO_PERMISSION);
}
}