Commit 7ea43215 by 284718418@qq.com

文件权限优化

parent a1db1cd2
......@@ -73,7 +73,7 @@ public class DiskCloudDiskUser extends Model<DiskCloudDiskUser> {
/**
* 用户类型:0.超级管理员,1.管理员,2.普通用户
*/
@ApiModelProperty(value = "用户类型:0.超级管理员,1.管理员,2.普通用户")
@ApiModelProperty(value = "用户类型:0.超级管理员,1.管理员,2.可编辑用户,3可下载用户")
private Integer userRole;
/**
* 用户权限:r查看,w编辑,x删除,d下载:例如rwxd
......@@ -99,7 +99,10 @@ public class DiskCloudDiskUser extends Model<DiskCloudDiskUser> {
this.userPower="rwd";
break;
case 2:
this.userPower="rd";
this.userPower="w";
break;
case 3:
this.userPower="d";
break;
}
}
......
......@@ -285,5 +285,24 @@ public interface JxglEnumInterface {
}
}
/**
* 云盘-用户类型:0.超级管理员,1.管理员,2.可编辑用户,3.可下载用户
*/
@Getter
enum DiskCloudUserRole implements JxglEnumInterface {
SUPER_ADMIN_USER(0, "超级管理员"), ADMIN_USER(1, "管理员"), W_USER(2, "可编辑用户")
, D_USER(3, "3可下载用户");
private Integer type;
private String name;
DiskCloudUserRole(Integer type, String name) {
this.type = type;
this.name = name;
}
}
}
......@@ -19,6 +19,7 @@ import cn.timer.api.controller.disk.sevice.DiskCloudDiskUserService;
import cn.timer.api.controller.disk.sevice.DiskFilesService;
import cn.timer.api.dto.disk.DiskCatalogueDto;
import cn.timer.api.dto.disk.DiskCatalogueParam;
import cn.timer.api.dto.disk.DiskCloudDiskUserParam;
import cn.timer.api.utils.Result;
import cn.timer.api.utils.ResultUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
......@@ -83,8 +84,15 @@ public class DiskCatalogueController {
if(JxglEnumInterface.DiskCatalogueType.DISK_YUN.getType().equals(diskCatalogueDto.getType()) &&
!StringUtils.isEmpty(diskCatalogueDto.getId()) && diskCatalogueDto.getId() > 0){
diskCatalogueDto.setUserId(userBean.getEmpNum());
if(!diskCloudDiskUserService.getDiskUserRole(diskCatalogueDto,DiskCatalogue.builder().id(diskCatalogueDto.getId()).build().selectById())){
return ResultUtil.error("无权限,操作失败!");
if(!StringUtils.isEmpty(catalogue) && !catalogue.getCreateUserId().equals(userBean.getEmpNum())){
DiskCloudDiskUserParam param = new DiskCloudDiskUserParam();
param.setUserId(userBean.getEmpNum());
param.setOrgId(userBean.getOrgCode());
param.setCatalogueId(diskCatalogueDto.getId());
DiskCloudDiskUser user = diskCloudDiskUserService.getUserRoleBySharedSpace(param);
if(StringUtils.isEmpty(user) || StringUtils.isEmpty(user.getUserRole()) || user.getUserRole() > JxglEnumInterface.DiskCloudUserRole.ADMIN_USER.getType()){
return ResultUtil.error("无权限,操作失败!");
}
}
}
......@@ -98,9 +106,11 @@ public class DiskCatalogueController {
}else {
diskCatalogue.setParentIds(parentIds);
}
diskCatalogue.setCreateUserId(userBean.getEmpNum());
diskCatalogue.setOrgId(userBean.getOrgCode());
if(StringUtils.isEmpty(diskCatalogueDto.getId()) || diskCatalogueDto.getId() <= 0){
diskCatalogue.setCreateUserId(userBean.getEmpNum());
}
diskCatalogue.setUserName(userBean.getQyzxEmpLogin().getUsername());
diskCatalogue.setOrgId(userBean.getOrgCode());
diskCatalogue.setUpdateUserId(userBean.getEmpNum());
Boolean count = diskCatalogue.insertOrUpdate();
// 云盘修改
......@@ -178,19 +188,40 @@ public class DiskCatalogueController {
@ApiOperationSupport(order = 2)
public Result<Object> myfile(@CurrentUser UserBean userBean, DiskCatalogueParam diskCatalogueParam) {
try {
diskCatalogueParam.setUserId(userBean.getEmpNum());
//diskCatalogueParam.setUserId(userBean.getEmpNum());
diskCatalogueParam.setOrgId(userBean.getOrgCode());
// 获取文件夹
List<DiskCatalogue> diskCatalogueList = DiskCatalogue.builder().build().selectList(new QueryWrapper<DiskCatalogue>()
.lambda().eq(DiskCatalogue::getOrgId, userBean.getOrgCode())
.eq(DiskCatalogue::getCreateUserId, userBean.getEmpNum())
.eq(DiskCatalogue::getCreateUserId, diskCatalogueParam.getUserId())
.eq(DiskCatalogue::getParentId, diskCatalogueParam.getParentId())
.eq(DiskCatalogue::getType, diskCatalogueParam.getType())
.eq(DiskCatalogue::getDeleteFlag, 0)
);
if(StringUtils.isEmpty(diskCatalogueParam.getParentId()) || diskCatalogueParam.getParentId() == 0
// 别人的空间,自己的权限级别
if((StringUtils.isEmpty(diskCatalogueParam.getParentId()) || diskCatalogueParam.getParentId() > 0)
&& JxglEnumInterface.DiskCatalogueType.DISK_YUN.getType().equals(diskCatalogueParam.getType())){
DiskCloudDiskUserParam param = new DiskCloudDiskUserParam();
param.setUserId(userBean.getEmpNum());
param.setOrgId(userBean.getOrgCode());
param.setCatalogueId(diskCatalogueParam.getParentId());
DiskCloudDiskUser user = diskCloudDiskUserService.getUserRoleBySharedSpace(param);
if(!StringUtils.isEmpty(user) && !StringUtils.isEmpty(user.getId())){
for (DiskCatalogue entity : diskCatalogueList) {
entity.setUserRole(user.getUserRole());
entity.setUserPower(user.getUserPower());
}
}
}
if((StringUtils.isEmpty(diskCatalogueParam.getParentId()) || diskCatalogueParam.getParentId() == 0)
&& JxglEnumInterface.DiskCatalogueType.DISK_YUN.getType().equals(diskCatalogueParam.getType())){
// 自己的空间默认设置为超级管理员
for (DiskCatalogue entity : diskCatalogueList) {
entity.setUserRole(JxglEnumInterface.DiskCloudUserRole.SUPER_ADMIN_USER.getType());
entity.setUserPower("rwxd");
}
//空间 获取有权限的
diskCatalogueParam.setUserId(userBean.getEmpNum());
List<DiskCatalogue> diskCatalogueList2 = diskCloudDiskUserService.getDiskCatalogueList(diskCatalogueParam);
if(!CollectionUtils.isEmpty(diskCatalogueList2)){
diskCatalogueList.addAll(diskCatalogueList2);
......@@ -291,10 +322,17 @@ public class DiskCatalogueController {
if(JxglEnumInterface.DiskCatalogueType.DISK_YUN.getType().equals(diskCatalogueDto.getType()) &&
!StringUtils.isEmpty(diskCatalogueDto.getId()) && diskCatalogueDto.getId() > 0){
diskCatalogueDto.setUserId(userBean.getEmpNum());
if(!diskCloudDiskUserService.getDiskUserRole(diskCatalogueDto,DiskCatalogue.builder().id(diskCatalogueDto.getId()).build().selectById())){
return ResultUtil.error("无权限,操作失败!");
if(!StringUtils.isEmpty(catalogue) && !catalogue.getCreateUserId().equals(userBean.getEmpNum())) {
DiskCloudDiskUserParam param = new DiskCloudDiskUserParam();
param.setUserId(userBean.getEmpNum());
param.setOrgId(userBean.getOrgCode());
param.setCatalogueId(diskCatalogueDto.getId());
DiskCloudDiskUser user = diskCloudDiskUserService.getUserRoleBySharedSpace(param);
if (StringUtils.isEmpty(user) || StringUtils.isEmpty(user.getUserRole()) || user.getUserRole() > JxglEnumInterface.DiskCloudUserRole.ADMIN_USER.getType()) {
return ResultUtil.error("无权限,操作失败!");
}
}
// 删除之前的成员 全部重新添加
// 删除之前的成员
DiskCloudDiskUser.builder().deleteFlag(1).build().update(new QueryWrapper<DiskCloudDiskUser>()
.lambda().eq(DiskCloudDiskUser::getOrgId, userBean.getOrgCode())
.eq(DiskCloudDiskUser::getCatalogueId, catalogue.getId()));
......
......@@ -179,6 +179,7 @@ public class DiskFilesController {
entity.setId(diskFiles.getId());
entity.setTitle(diskFilesParam.getName());
entity.setUpdateUserId(userBean.getEmpNum());
entity.setUserName(userBean.getQyzxEmpLogin().getUsername());
DiskFilesLog diskFilesLog = new DiskFilesLog();
diskFilesLog.setType(JxglEnumInterface.DiskFilesLogType.UPDATE_LOG.getType());
if(!StringUtils.isEmpty(diskFilesParam.getDeleteFlag())){
......
......@@ -28,4 +28,11 @@ public interface DiskCloudDiskUserService {
* @return
*/
List<DiskCatalogue> getDiskCatalogueList(DiskCatalogueParam diskCatalogueParam);
/**
* 获取空间操作权限
* @param diskCloudDiskUserParam
* @return
*/
DiskCloudDiskUser getUserRoleBySharedSpace(DiskCloudDiskUserParam diskCloudDiskUserParam);
}
......@@ -46,4 +46,28 @@ public class DiskCloudDiskUserServiceImpl implements DiskCloudDiskUserService {
public List<DiskCatalogue> getDiskCatalogueList(DiskCatalogueParam diskCatalogueParam) {
return diskCloudDiskUserMapper.getDiskCatalogueList(diskCatalogueParam);
}
@Override
public DiskCloudDiskUser getUserRoleBySharedSpace(DiskCloudDiskUserParam diskCloudDiskUserParam) {
DiskCloudDiskUser dcdUser = DiskCloudDiskUser.builder().build();
DiskCatalogue catalogue = DiskCatalogue.builder().id(diskCloudDiskUserParam.getCatalogueId()).build().selectById();
if(StringUtils.isEmpty(catalogue)){
return dcdUser;
}
if(catalogue.getParentId() > 0){
String[] parent = catalogue.getParentIds().split(",");
catalogue = DiskCatalogue.builder().id(Integer.parseInt(parent[0])).build().selectById();
}
dcdUser = dcdUser.selectOne(new QueryWrapper<DiskCloudDiskUser>()
.lambda().eq(DiskCloudDiskUser::getUserId,diskCloudDiskUserParam.getUserId())
.eq(DiskCloudDiskUser::getOrgId,diskCloudDiskUserParam.getOrgId())
.eq(DiskCloudDiskUser::getCatalogueId,catalogue.getId()));
if(StringUtils.isEmpty(dcdUser) && catalogue.getCreateUserId().equals(diskCloudDiskUserParam.getUserId())){
dcdUser = DiskCloudDiskUser.builder().build();
dcdUser.setId(0);
dcdUser.setUserRole(JxglEnumInterface.DiskCloudUserRole.SUPER_ADMIN_USER.getType());
dcdUser.setUserPower("rwxd");
}
return dcdUser;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment