viewer权限

This commit is contained in:
CD
2022-11-16 13:38:54 +08:00
parent afb50c3fa9
commit 7d70edb414
11 changed files with 126 additions and 17 deletions
@@ -20,7 +20,7 @@ public enum ProjectRoleEnum {
VERIFYDUTY("验证符合性确认-责任人","10",""),
MANAGER("验证符合性确认-责任人","11",""),
ADMIN("系统管理员","12",""),
VIEWER("Viewer","",""),
VIEWER("Viewer","13",""),
;
String name;
@@ -1,6 +1,7 @@
package com.jero.modules.project.mapper;
import java.util.List;
import java.util.Set;
import org.apache.ibatis.annotations.Param;
import com.jero.modules.project.entity.ProjectUserPermission;
@@ -15,5 +16,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface ProjectUserPermissionMapper extends BaseMapper<ProjectUserPermission> {
List<String> queryProjectIdsByUserId(@Param("userId") String userId);
Set<String> queryProjectIdsByUserId(@Param("userId") String userId);
}
@@ -58,6 +58,7 @@ import com.jero.modules.system.mapper.SysCategoryMapper;
import com.jero.modules.system.mapper.SysDictItemMapper;
import com.jero.modules.system.mapper.SysRoleMapper;
import com.jero.modules.system.mapper.SysUserMapper;
import com.jero.modules.system.service.IProjectUserDutyTerritoryService;
import com.jero.modules.system.service.ISysAnnouncementService;
import com.jero.modules.system.service.ISysUserService;
import com.jero.modules.system.service.impl.SysCategoryServiceImpl;
@@ -242,6 +243,9 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
@Autowired
private IProjectUserPermissionService projectUserPermissionService;
@Autowired
private IProjectUserDutyTerritoryService projectUserDutyTerritoryService;
/**
* 保存
*
@@ -843,13 +847,23 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
if(isProjectRole != Integer.parseInt(ProjectRoleEnum.STUDIO_ENGINEER.getValue())
&& isProjectRole != Integer.parseInt(ProjectRoleEnum.MANAGER.getValue())
&& isProjectRole != Integer.parseInt(ProjectRoleEnum.ADMIN.getValue())){
&& isProjectRole != Integer.parseInt(ProjectRoleEnum.ADMIN.getValue())
&& isProjectRole != Integer.parseInt(ProjectRoleEnum.VIEWER.getValue())){
projectLawsInventoryEOQueryWrapper.and(queryWrapper ->{
queryWrapper.eq("regulation_owner_id",currentUser.getId()).
or().eq("homologation_engineer_id",currentUser.getId());
});
}
List<ProjectLawsInventoryEO> result = super.baseMapper.selectList(projectLawsInventoryEOQueryWrapper);
if (isProjectRole == Integer.parseInt(ProjectRoleEnum.VIEWER.getValue())) {
//查当前用户Viewer对应责任领域
List<String> dutyTerritoryList = projectUserDutyTerritoryService.queryDutyTerritoryByUserId(currentUser.getId());
if (ObjectUtils.isNotEmpty(dutyTerritoryList)) {
result = result.stream().filter(e -> dutyTerritoryList.contains(e.getDutyTerritory())).collect(Collectors.toList());
} else {
result = new ArrayList<>();
}
}
dataDispose(result,currentUser,isProjectRole,projectLawsInventoryEO.getCut());
long startTime = System.currentTimeMillis();
dataDictDispose(result,projectLawsInventoryEO.getCut());
@@ -24,6 +24,7 @@ import com.jero.modules.system.enums.DicCodeEnum;
import com.jero.modules.system.mapper.SysDictItemMapper;
import com.jero.modules.system.mapper.SysRoleMapper;
import com.jero.modules.system.mapper.SysUserMapper;
import com.jero.modules.system.service.IProjectUserBrandService;
import com.jero.modules.system.service.ISysDictService;
import com.jero.modules.system.service.ISysUserService;
import com.jero.modules.system.service.impl.SysDictItemServiceImpl;
@@ -46,15 +47,7 @@ import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStream;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.*;
import java.util.stream.Collectors;
/**
@@ -126,6 +119,9 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
@Autowired
private ProjectUserPermissionMapper projectUserPermissionMapper;
@Autowired
private IProjectUserBrandService projectUserBrandService;
/**
* 保存
*
@@ -725,10 +721,18 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
@Override
public List<ProjectLibraryBase> queryPageList(Map<String,Object> params) {
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
List<String> projectIds = new ArrayList<>();
if (sysRoleMapper.queryUserRoleByCode(ProjectRoleEnum.VIEWER.getName(), loginUser.getId()) == 0) {
//如果不是Viewer,根据项目用户权限表筛选有权访问的项目
projectIds = projectUserPermissionMapper.queryProjectIdsByUserId(loginUser.getId());
//根据项目用户权限表筛选有权访问的项目
Set<String> projectIds = projectUserPermissionMapper.queryProjectIdsByUserId(loginUser.getId());
if (sysRoleMapper.queryUserRoleByCode(ProjectRoleEnum.VIEWER.getName(), loginUser.getId()) > 0) {
//如果是Viewer,根据配置的品牌筛选可访问的项目
List<String> brandTypes = projectUserBrandService.queryBrandByUserId(loginUser.getId());
if (ObjectUtils.isNotEmpty(brandTypes)) {
QueryWrapper<ProjectLibraryBase> queryWrapper = new QueryWrapper<>();
queryWrapper.in("brand",brandTypes);
if (ObjectUtils.isNotEmpty(list(queryWrapper))) {
projectIds.addAll(list(queryWrapper).stream().map(ProjectLibraryBase::getId).collect(Collectors.toSet()));
}
}
}
List<ProjectLibraryBase> result = projectLibraryBaseMapper.queryPageList(params);