Merge "DeleteMembers: Do not fail if member input contains null or empty string"

This commit is contained in:
Edwin Kempin
2019-11-26 08:51:36 +00:00
committed by Gerrit Code Review
2 changed files with 22 additions and 0 deletions

View File

@@ -14,6 +14,7 @@
package com.google.gerrit.server.restapi.group;
import com.google.common.base.Strings;
import com.google.common.collect.Sets;
import com.google.gerrit.common.data.GroupDescription;
import com.google.gerrit.entities.Account;
@@ -68,6 +69,9 @@ public class DeleteMembers implements RestModifyView<GroupResource, Input> {
Set<Account.Id> membersToRemove = new HashSet<>();
for (String nameOrEmail : input.members) {
if (Strings.isNullOrEmpty(nameOrEmail)) {
continue;
}
membersToRemove.add(accountResolver.resolve(nameOrEmail).asUnique().account().id());
}
AccountGroup.UUID groupUuid = internalGroup.getGroupUUID();

View File

@@ -186,6 +186,24 @@ public class GroupsIT extends AbstractDaemonTest {
assertThat(members).isEmpty();
}
@Test
public void removeMember_nullInMemberInputDoesNotCauseFailure() throws Exception {
AccountGroup.UUID group =
groupOperations.newGroup().addMember(admin.id()).addMember(user.id()).create();
gApi.groups().id(group.get()).removeMembers(user.id().toString(), null);
ImmutableSet<Account.Id> members = groupOperations.group(group).get().members();
assertThat(members).containsExactly(admin.id());
}
@Test
public void removeMember_emptyStringInMemberInputDoesNotCauseFailure() throws Exception {
AccountGroup.UUID group =
groupOperations.newGroup().addMember(admin.id()).addMember(user.id()).create();
gApi.groups().id(group.get()).removeMembers(user.id().toString(), "");
ImmutableSet<Account.Id> members = groupOperations.group(group).get().members();
assertThat(members).containsExactly(admin.id());
}
@Test
public void cachedGroupsForMemberAreUpdatedOnMemberAdditionAndRemoval() throws Exception {
String username = name("user");