应用授权修订
This commit is contained in:
@@ -611,17 +611,14 @@ public class GroupAuthzService implements IGroupAuthzService {
|
|||||||
allChainIds.addAll(chain);
|
allChainIds.addAll(chain);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 3. 收集这些组已开通的应用
|
// 3. 收集「用户归属组 + 其祖先链」所有组已开通的应用并集。
|
||||||
|
// 安全:hasUserModulePermission 仍会判定 groupId(当前归属组)必须在 openedApps 链上(即归属组或其祖先开通应用),
|
||||||
|
// 不会出现“无组归属、父级未开”的越权;此处只是把过滤和写面板(GroupModuleTreeByCategory)联动对齐,
|
||||||
|
// 解决之前“管理员在组8面板勾了checked=true,但UserPermissionTree返回空”的对称bug。
|
||||||
Map<Integer, Set<Integer>> groupToApps = new HashMap<>();
|
Map<Integer, Set<Integer>> groupToApps = new HashMap<>();
|
||||||
Set<Integer> allAppIds = new LinkedHashSet<>();
|
Set<Integer> allAppIds = new LinkedHashSet<>();
|
||||||
for (Integer groupIdItem : selfGroupIds) {
|
for (Integer groupIdItem : selfGroupIds) {
|
||||||
List<SysGroupAppRel> appRels = sysGroupAppRelRepository.findByGroupId(groupIdItem);
|
Set<Integer> apps = collectAppIdsForAuthzScope(groupIdItem);
|
||||||
Set<Integer> apps = new LinkedHashSet<>();
|
|
||||||
for (SysGroupAppRel rel : appRels) {
|
|
||||||
if (rel.getAppId() != null) {
|
|
||||||
apps.add(rel.getAppId());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
groupToApps.put(groupIdItem, apps);
|
groupToApps.put(groupIdItem, apps);
|
||||||
allAppIds.addAll(apps);
|
allAppIds.addAll(apps);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user