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>()
|
List<LawsDataCenterFolder> lawsDataCenterFolderList = list(new LambdaQueryWrapper<LawsDataCenterFolder>()
|
||||||
.orderByAsc(LawsDataCenterFolder::getSort).orderByAsc(LawsDataCenterFolder::getCreateTime));
|
.orderByAsc(LawsDataCenterFolder::getSort).orderByAsc(LawsDataCenterFolder::getCreateTime));
|
||||||
|
|
||||||
// 非管理员只能看到自己创建的 or 拥有管理权限 or 拥有查看权限的文件夹 or 默认根目录
|
// 非管理员只能看到自己创建的 or 拥有管理权限 or 拥有查看权限的文件夹 or 默认根目录
|
||||||
List<String> adminRoleCodeList = Arrays.asList(adminRoleCode.split(","));
|
List<String> adminRoleCodeList = Arrays.asList(adminRoleCode.split(","));
|
||||||
Collection<String> intersection = CollectionUtils.intersection(Arrays.asList(roleIds.split(",")), adminRoleCodeList);
|
Collection<String> intersection = CollectionUtils.intersection(Arrays.asList(roleIds.split(",")), adminRoleCodeList);
|
||||||
if (!roleIds.contains("admin") && CollectionUtils.isEmpty(intersection)){
|
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()
|
lawsDataCenterFolderList = lawsDataCenterFolderList.stream()
|
||||||
.filter(v -> (StringUtils.isNotBlank(v.getAuthManageIds()) && v.getAuthManageIds().contains(loginUser.getId()))
|
.filter(v -> (StringUtils.isNotBlank(v.getAuthManageIds()) && v.getAuthManageIds().contains(loginUser.getId()))
|
||||||
|| (StringUtils.isNotBlank(v.getAuthViewIds()) && v.getAuthViewIds().contains(loginUser.getId()))
|
|| (StringUtils.isNotBlank(v.getAuthViewIds()) && v.getAuthViewIds().contains(loginUser.getId()))
|
||||||
|
|||||||
Reference in New Issue
Block a user