diff options
Diffstat (limited to 'gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/SetMembersCommand.java')
-rw-r--r-- | gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/SetMembersCommand.java | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/SetMembersCommand.java b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/SetMembersCommand.java index 071f2ef703..982c4959ef 100644 --- a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/SetMembersCommand.java +++ b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/SetMembersCommand.java @@ -18,6 +18,7 @@ import static java.util.stream.Collectors.joining; import static java.util.stream.Collectors.toList; import com.google.common.base.MoreObjects; +import com.google.common.collect.Streams; import com.google.gerrit.extensions.restapi.IdString; import com.google.gerrit.extensions.restapi.RestApiException; import com.google.gerrit.extensions.restapi.TopLevelResource; @@ -25,12 +26,13 @@ import com.google.gerrit.reviewdb.client.Account; import com.google.gerrit.reviewdb.client.AccountGroup; import com.google.gerrit.server.account.AccountCache; import com.google.gerrit.server.account.GroupCache; -import com.google.gerrit.server.group.AddIncludedGroups; import com.google.gerrit.server.group.AddMembers; -import com.google.gerrit.server.group.DeleteIncludedGroups; +import com.google.gerrit.server.group.AddSubgroups; import com.google.gerrit.server.group.DeleteMembers; +import com.google.gerrit.server.group.DeleteSubgroups; import com.google.gerrit.server.group.GroupResource; import com.google.gerrit.server.group.GroupsCollection; +import com.google.gerrit.server.group.InternalGroup; import com.google.gerrit.sshd.CommandMetaData; import com.google.gerrit.sshd.SshCommand; import com.google.inject.Inject; @@ -86,9 +88,9 @@ public class SetMembersCommand extends SshCommand { @Inject private DeleteMembers deleteMembers; - @Inject private AddIncludedGroups addIncludedGroups; + @Inject private AddSubgroups addSubgroups; - @Inject private DeleteIncludedGroups deleteIncludedGroups; + @Inject private DeleteSubgroups deleteSubgroups; @Inject private GroupsCollection groupsCollection; @@ -107,7 +109,7 @@ public class SetMembersCommand extends SshCommand { reportMembersAction("removed from", resource, accountsToRemove); } if (!groupsToRemove.isEmpty()) { - deleteIncludedGroups.apply(resource, fromGroups(groupsToRemove)); + deleteSubgroups.apply(resource, fromGroups(groupsToRemove)); reportGroupsAction("excluded from", resource, groupsToRemove); } if (!accountsToAdd.isEmpty()) { @@ -115,7 +117,7 @@ public class SetMembersCommand extends SshCommand { reportMembersAction("added to", resource, accountsToAdd); } if (!groupsToInclude.isEmpty()) { - addIncludedGroups.apply(resource, fromGroups(groupsToInclude)); + addSubgroups.apply(resource, fromGroups(groupsToInclude)); reportGroupsAction("included to", resource, groupsToInclude); } } @@ -142,14 +144,16 @@ public class SetMembersCommand extends SshCommand { String action, GroupResource group, List<AccountGroup.UUID> groupUuidList) throws UnsupportedEncodingException, IOException { String names = - groupUuidList.stream().map(uuid -> groupCache.get(uuid).getName()).collect(joining(", ")); + groupUuidList.stream() + .map(uuid -> groupCache.get(uuid).map(InternalGroup::getName)) + .flatMap(Streams::stream) + .collect(joining(", ")); out.write( String.format("Groups %s group %s: %s\n", action, group.getName(), names).getBytes(ENC)); } - private AddIncludedGroups.Input fromGroups(List<AccountGroup.UUID> accounts) { - return AddIncludedGroups.Input.fromGroups( - accounts.stream().map(Object::toString).collect(toList())); + private AddSubgroups.Input fromGroups(List<AccountGroup.UUID> accounts) { + return AddSubgroups.Input.fromGroups(accounts.stream().map(Object::toString).collect(toList())); } private AddMembers.Input fromMembers(List<Account.Id> accounts) { |