summaryrefslogtreecommitdiffstats
path: root/java/com/google/gerrit/server/restapi/group/ListMembers.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/com/google/gerrit/server/restapi/group/ListMembers.java')
-rw-r--r--java/com/google/gerrit/server/restapi/group/ListMembers.java19
1 files changed, 16 insertions, 3 deletions
diff --git a/java/com/google/gerrit/server/restapi/group/ListMembers.java b/java/com/google/gerrit/server/restapi/group/ListMembers.java
index 5b3e8dc42c..87b00c17d5 100644
--- a/java/com/google/gerrit/server/restapi/group/ListMembers.java
+++ b/java/com/google/gerrit/server/restapi/group/ListMembers.java
@@ -80,13 +80,18 @@ public class ListMembers implements RestReadView<GroupResource> {
throws PermissionBackendException {
Optional<InternalGroup> group = groupCache.get(groupUuid);
if (group.isPresent()) {
- InternalGroupDescription internalGroup = new InternalGroupDescription(group.get());
- GroupControl groupControl = groupControlFactory.controlFor(internalGroup);
- return getTransitiveMembers(internalGroup, groupControl);
+ return getTransitiveMembers(group.get());
}
return ImmutableList.of();
}
+ public List<AccountInfo> getTransitiveMembers(InternalGroup group)
+ throws PermissionBackendException {
+ InternalGroupDescription internalGroup = new InternalGroupDescription(group);
+ GroupControl groupControl = groupControlFactory.controlFor(internalGroup);
+ return getTransitiveMembers(internalGroup, groupControl);
+ }
+
private List<AccountInfo> getTransitiveMembers(
GroupDescription.Internal group, GroupControl groupControl)
throws PermissionBackendException {
@@ -110,6 +115,14 @@ public class ListMembers implements RestReadView<GroupResource> {
return toAccountInfos(directMembers);
}
+ protected List<AccountInfo> getMembers(InternalGroup group) throws PermissionBackendException {
+ if (recursive) {
+ return getTransitiveMembers(group);
+ } else {
+ return getDirectMembers(group);
+ }
+ }
+
private List<AccountInfo> toAccountInfos(Set<Account.Id> members)
throws PermissionBackendException {
AccountLoader accountLoader = accountLoaderFactory.create(true);