项目列表权限筛查
This commit is contained in:
+1
-1
@@ -15,7 +15,7 @@
|
|||||||
|
|
||||||
<select id="queryProjectIdsByUserId" resultType="java.lang.String">
|
<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
|
WHERE pup.user_id = #{userId} GROUP BY pup.project_id
|
||||||
|
|
||||||
</select>
|
</select>
|
||||||
|
|||||||
+39
-2
@@ -722,7 +722,11 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
|
|||||||
public List<ProjectLibraryBase> queryPageList(Map<String,Object> params) {
|
public List<ProjectLibraryBase> queryPageList(Map<String,Object> params) {
|
||||||
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
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) {
|
if (sysRoleMapper.queryUserRoleByCode(ProjectRoleEnum.VIEWER.getName(), loginUser.getId()) > 0) {
|
||||||
//如果是Viewer,根据配置的品牌筛选可访问的项目
|
//如果是Viewer,根据配置的品牌筛选可访问的项目
|
||||||
List<String> brandTypes = projectUserBrandService.queryBrandByUserId(loginUser.getId());
|
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
|
@NotNull
|
||||||
|
|||||||
Reference in New Issue
Block a user