修改资料中心下载权限问题
This commit is contained in:
+16
-2
@@ -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);
|
||||
}
|
||||
// 下载
|
||||
|
||||
Reference in New Issue
Block a user