feat(87643): 权限校验问题

This commit is contained in:
yjz
2024-08-08 10:57:57 +08:00
parent fc5c7ea040
commit ea4c92f6c1
@@ -312,11 +312,37 @@ public class LawsDataCenterFolderServiceImpl extends ServiceImpl<LawsDataCenterF
// 全部数据
List<LawsDataCenterFolder> lawsDataCenterFolderList = list(new LambdaQueryWrapper<LawsDataCenterFolder>()
.orderByAsc(LawsDataCenterFolder::getSort).orderByAsc(LawsDataCenterFolder::getCreateTime));
// 非管理员只能看到自己创建的 or 拥有管理权限 or 拥有查看权限的文件夹 or 默认根目录
List<String> adminRoleCodeList = Arrays.asList(adminRoleCode.split(","));
Collection<String> intersection = CollectionUtils.intersection(Arrays.asList(roleIds.split(",")), adminRoleCodeList);
if (!roleIds.contains("admin") && CollectionUtils.isEmpty(intersection)){
List<LawsDataCenterFolderSublist> list = new ArrayList<>();
if (!CollectionUtils.isEmpty(lawsDataCenterFolderList)){
List<String> folderIdList = lawsDataCenterFolderList.stream()
.map(LawsDataCenterFolder::getId).collect(Collectors.toList());
list = lawsDataCenterFolderSublistService.list(
new LambdaQueryWrapper<LawsDataCenterFolderSublist>()
.in(LawsDataCenterFolderSublist::getDataCenterFolderId, folderIdList));
}
for (LawsDataCenterFolder lawsDataCenterFolder : lawsDataCenterFolderList) {
List<LawsDataCenterFolderSublist> lawsDataCenterFolderSublistList =
list.stream().filter(v -> v.getDataCenterFolderId().equals(lawsDataCenterFolder.getId()))
.collect(Collectors.toList());
if (!CollectionUtils.isEmpty(lawsDataCenterFolderSublistList)){
String authManages = lawsDataCenterFolderSublistList.stream()
.filter(v -> DataCenterCommon.AUTH_MANAGE.equals(v.getType()))
.map(LawsDataCenterFolderSublist::getUserId)
.collect(Collectors.joining(","));
lawsDataCenterFolder.setAuthManageIds(authManages);
String authViews = list.stream()
.filter(v -> DataCenterCommon.AUTH_VIEW.equals(v.getType()))
.map(LawsDataCenterFolderSublist::getUserId)
.collect(Collectors.joining(","));
lawsDataCenterFolder.setAuthViewIds(authViews);
lawsDataCenterFolder.setAuthManageIds(authManages);
lawsDataCenterFolder.setAuthViewIds(authViews);
}
}
lawsDataCenterFolderList = lawsDataCenterFolderList.stream()
.filter(v -> (StringUtils.isNotBlank(v.getAuthManageIds()) && v.getAuthManageIds().contains(loginUser.getId()))
|| (StringUtils.isNotBlank(v.getAuthViewIds()) && v.getAuthViewIds().contains(loginUser.getId()))