修改资料中心下载权限问题

This commit is contained in:
梁琦涛
2024-08-30 11:52:04 +08:00
parent b7fea3a1ce
commit c549c6aefd
@@ -1,5 +1,6 @@
package com.jero.modules.laws.dataCenter.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jero.common.api.vo.Result;
import com.jero.common.api.vo.ResultCommon;
@@ -8,9 +9,12 @@ import com.jero.common.exception.JeroBootException;
import com.jero.common.system.base.controller.JeroController;
import com.jero.modules.laws.common.constant.FieldCommon;
import com.jero.modules.laws.common.util.CurrentUserUtil;
import com.jero.modules.laws.dataCenter.common.DataCenterCommon;
import com.jero.modules.laws.dataCenter.entity.LawsDataCenterFile;
import com.jero.modules.laws.dataCenter.entity.LawsDataCenterFolderSublist;
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.sys.controller.SysCommonController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -22,6 +26,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
@@ -45,6 +50,8 @@ public class LawsDataCenterFileController extends JeroController<LawsDataCenterF
private SysCommonController sysCommonController;
@Autowired
private ILawsDataCenterFolderService lawsDataCenterFolderService;
@Resource
private LawsDataCenterFolderSublistService lawsDataCenterFolderSublistService;
private final static String permissionFlag = "profileCenter:table"; // 权限标识
@@ -165,10 +172,17 @@ public class LawsDataCenterFileController extends JeroController<LawsDataCenterF
throw new JeroBootException(ResultCommon.NO_CORRESPONDING_DATA_FOUND);
}
lawsDataCenterFileService.isHorizontalOverstep(id);
// 查看父级是否有下载权限或者管理权限
LambdaQueryWrapper<LawsDataCenterFolderSublist> queryLawsDataCenterFolderSublist = new LambdaQueryWrapper<>();
queryLawsDataCenterFolderSublist.eq(LawsDataCenterFolderSublist::getDataCenterFolderId,file.getFolderId());
queryLawsDataCenterFolderSublist.eq(LawsDataCenterFolderSublist::getUserId,CurrentUserUtil.getId());
queryLawsDataCenterFolderSublist.and(o->
o.eq(LawsDataCenterFolderSublist::getType, DataCenterCommon.AUTH_MANAGE).or()
.eq(LawsDataCenterFolderSublist::getType,DataCenterCommon.AUTH_DOWNLOAD));
long l = lawsDataCenterFolderSublistService.count(queryLawsDataCenterFolderSublist);
// 不是管理员,不是自己上传的文件,并且推送范围不包含自己
if (!CurrentUserUtil.getRoles().contains(FieldCommon.ROLE_ADMIN)
&& !CurrentUserUtil.getId().equals(file.getOwnerId())
&& (StringUtils.isBlank(file.getPushRangeIds()) || !file.getPushRangeIds().contains(CurrentUserUtil.getId()))) {
&& !CurrentUserUtil.getId().equals(file.getOwnerId()) && l == 0) {
throw new JeroBootException(ResultCommon.NO_PERMISSION);
}
// 下载