修改资料中心下载权限问题
This commit is contained in:
+16
-2
@@ -1,5 +1,6 @@
|
|||||||
package com.jero.modules.laws.dataCenter.controller;
|
package com.jero.modules.laws.dataCenter.controller;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.jero.common.api.vo.Result;
|
import com.jero.common.api.vo.Result;
|
||||||
import com.jero.common.api.vo.ResultCommon;
|
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.common.system.base.controller.JeroController;
|
||||||
import com.jero.modules.laws.common.constant.FieldCommon;
|
import com.jero.modules.laws.common.constant.FieldCommon;
|
||||||
import com.jero.modules.laws.common.util.CurrentUserUtil;
|
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.LawsDataCenterFile;
|
||||||
|
import com.jero.modules.laws.dataCenter.entity.LawsDataCenterFolderSublist;
|
||||||
import com.jero.modules.laws.dataCenter.service.ILawsDataCenterFileService;
|
import com.jero.modules.laws.dataCenter.service.ILawsDataCenterFileService;
|
||||||
import com.jero.modules.laws.dataCenter.service.ILawsDataCenterFolderService;
|
import com.jero.modules.laws.dataCenter.service.ILawsDataCenterFolderService;
|
||||||
|
import com.jero.modules.laws.dataCenter.service.LawsDataCenterFolderSublistService;
|
||||||
import com.jero.modules.sys.controller.SysCommonController;
|
import com.jero.modules.sys.controller.SysCommonController;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
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.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
@@ -45,6 +50,8 @@ public class LawsDataCenterFileController extends JeroController<LawsDataCenterF
|
|||||||
private SysCommonController sysCommonController;
|
private SysCommonController sysCommonController;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ILawsDataCenterFolderService lawsDataCenterFolderService;
|
private ILawsDataCenterFolderService lawsDataCenterFolderService;
|
||||||
|
@Resource
|
||||||
|
private LawsDataCenterFolderSublistService lawsDataCenterFolderSublistService;
|
||||||
|
|
||||||
private final static String permissionFlag = "profileCenter:table"; // 权限标识
|
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);
|
throw new JeroBootException(ResultCommon.NO_CORRESPONDING_DATA_FOUND);
|
||||||
}
|
}
|
||||||
lawsDataCenterFileService.isHorizontalOverstep(id);
|
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)
|
if (!CurrentUserUtil.getRoles().contains(FieldCommon.ROLE_ADMIN)
|
||||||
&& !CurrentUserUtil.getId().equals(file.getOwnerId())
|
&& !CurrentUserUtil.getId().equals(file.getOwnerId()) && l == 0) {
|
||||||
&& (StringUtils.isBlank(file.getPushRangeIds()) || !file.getPushRangeIds().contains(CurrentUserUtil.getId()))) {
|
|
||||||
throw new JeroBootException(ResultCommon.NO_PERMISSION);
|
throw new JeroBootException(ResultCommon.NO_PERMISSION);
|
||||||
}
|
}
|
||||||
// 下载
|
// 下载
|
||||||
|
|||||||
Reference in New Issue
Block a user