feat(87643): 权限校验问题
This commit is contained in:
+27
-1
@@ -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()))
|
||||
|
||||
Reference in New Issue
Block a user