Skip to content

Commit a5cd05b

Browse files
Merge pull request #4005 from sarkapalkovicova/add_member_to_vo_fix_authz
fix(core): filter candidates bases on group related roles
2 parents b982862 + 5661794 commit a5cd05b

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

perun-core/src/main/java/cz/metacentrum/perun/core/entry/VosManagerEntry.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -368,13 +368,20 @@ private List<MemberCandidate> filterMemberCandidates(PerunSession sess, List<Mem
368368
continue;
369369
}
370370

371+
boolean isEligible;
372+
371373
List<Vo> membersVos = perunBl.getUsersManagerBl().getVosWhereUserIsMember(sess, candidate.getRichUser());
372-
boolean isEligible = false;
373374
if (membersVos.isEmpty()) {
374375
isEligible = AuthzResolver.authorizedInternal(sess, "filter-getCompleteCandidates_policy");
375376
} else {
376377
isEligible = membersVos.stream().anyMatch(vo -> AuthzResolver.authorizedInternal(sess, "filter-getCompleteCandidates_policy", vo));
377378
}
379+
380+
List<Group> membersGroups = perunBl.getGroupsManagerBl().getUserGroups(sess, candidate.getRichUser());
381+
if (!membersGroups.isEmpty() && !isEligible) {
382+
isEligible = membersGroups.stream().anyMatch(group -> AuthzResolver.authorizedInternal(sess, "filter-getCompleteCandidates_policy", group));
383+
}
384+
378385
if (isEligible) {
379386
eligibleCandidates.add(candidate);
380387
}

0 commit comments

Comments
 (0)