项目列表权限筛查
This commit is contained in:
+1
-1
@@ -15,7 +15,7 @@
|
||||
|
||||
<select id="queryProjectIdsByUserId" resultType="java.lang.String">
|
||||
|
||||
SELECT * FROM project_user_permission pup
|
||||
SELECT pup.project_id FROM project_user_permission pup
|
||||
WHERE pup.user_id = #{userId} GROUP BY pup.project_id
|
||||
|
||||
</select>
|
||||
|
||||
+39
-2
@@ -722,7 +722,11 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
|
||||
public List<ProjectLibraryBase> queryPageList(Map<String,Object> params) {
|
||||
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
//根据项目用户权限表筛选有权访问的项目
|
||||
Set<String> projectIds = projectUserPermissionMapper.queryProjectIdsByUserId(loginUser.getId());
|
||||
Set<String> projectIds = new HashSet<>();
|
||||
Set<String> permissionProjectIds = projectUserPermissionMapper.queryProjectIdsByUserId(loginUser.getId());
|
||||
if (ObjectUtils.isNotEmpty(permissionProjectIds)) {
|
||||
projectIds.addAll(permissionProjectIds);
|
||||
}
|
||||
if (sysRoleMapper.queryUserRoleByCode(ProjectRoleEnum.VIEWER.getName(), loginUser.getId()) > 0) {
|
||||
//如果是Viewer,根据配置的品牌筛选可访问的项目
|
||||
List<String> brandTypes = projectUserBrandService.queryBrandByUserId(loginUser.getId());
|
||||
@@ -819,7 +823,40 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
|
||||
}
|
||||
}
|
||||
}
|
||||
return resultNew;
|
||||
|
||||
//权限筛选
|
||||
List<ProjectLibraryBase> resultLast = new ArrayList<>();
|
||||
for (ProjectLibraryBase projectLibraryBase : resultNew) {
|
||||
//判断父项目是否有权限
|
||||
if (!projectIds.contains(projectLibraryBase.getId())) {
|
||||
//判断子项目是否有权限
|
||||
List<ProjectLibraryBase> children = projectLibraryBase.getChildren();
|
||||
if (ObjectUtils.isNotEmpty(children)) {
|
||||
for (ProjectLibraryBase child : children) {
|
||||
//将有权限的放入最后返回的集合中
|
||||
if (projectIds.contains(child.getId())) {
|
||||
resultLast.add(child);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
List<ProjectLibraryBase> children = projectLibraryBase.getChildren();
|
||||
if (ObjectUtils.isNotEmpty(children)) {
|
||||
List<ProjectLibraryBase> lastChild = new ArrayList<>();
|
||||
//判断子项目是否有权限
|
||||
for (ProjectLibraryBase child : children) {
|
||||
if (projectIds.contains(child.getId())) {
|
||||
lastChild.add(child);
|
||||
}
|
||||
}
|
||||
projectLibraryBase.setChildren(lastChild);
|
||||
}
|
||||
resultLast.add(projectLibraryBase);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return resultLast;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
Reference in New Issue
Block a user