GroupMembers: Filter out members for which an account doesn't exist
None of the callers is interested in members that don't exist as account in Gerrit. Change-Id: I3866e85181d200c078c40bfab7f2937459902fb1 Signed-off-by: Edwin Kempin <ekempin@google.com>
This commit is contained in:
		@@ -17,6 +17,7 @@ package com.google.gerrit.server.account;
 | 
			
		||||
import static com.google.common.collect.ImmutableSet.toImmutableSet;
 | 
			
		||||
 | 
			
		||||
import com.google.common.collect.Sets;
 | 
			
		||||
import com.google.common.collect.Streams;
 | 
			
		||||
import com.google.gerrit.common.Nullable;
 | 
			
		||||
import com.google.gerrit.reviewdb.client.Account;
 | 
			
		||||
import com.google.gerrit.reviewdb.client.AccountGroup;
 | 
			
		||||
@@ -56,6 +57,8 @@ public class GroupMembers {
 | 
			
		||||
  /**
 | 
			
		||||
   * Recursively enumerate the members of the given group. Should not be used with the
 | 
			
		||||
   * PROJECT_OWNERS magical group.
 | 
			
		||||
   *
 | 
			
		||||
   * <p>Group members for which an account doesn't exist are filtered out.
 | 
			
		||||
   */
 | 
			
		||||
  public Set<Account> listAccounts(AccountGroup.UUID groupUUID) throws IOException {
 | 
			
		||||
    if (SystemGroupBackend.PROJECT_OWNERS.equals(groupUUID)) {
 | 
			
		||||
@@ -71,6 +74,8 @@ public class GroupMembers {
 | 
			
		||||
  /**
 | 
			
		||||
   * Recursively enumerate the members of the given group. The project should be specified so the
 | 
			
		||||
   * PROJECT_OWNERS magical group can be expanded.
 | 
			
		||||
   *
 | 
			
		||||
   * <p>Group members for which an account doesn't exist are filtered out.
 | 
			
		||||
   */
 | 
			
		||||
  public Set<Account> listAccounts(AccountGroup.UUID groupUUID, Project.NameKey project)
 | 
			
		||||
      throws NoSuchProjectException, IOException {
 | 
			
		||||
@@ -124,7 +129,8 @@ public class GroupMembers {
 | 
			
		||||
            .getMembers()
 | 
			
		||||
            .stream()
 | 
			
		||||
            .filter(groupControl::canSeeMember)
 | 
			
		||||
            .map(accountCache::get)
 | 
			
		||||
            .map(accountCache::maybeGet)
 | 
			
		||||
            .flatMap(Streams::stream)
 | 
			
		||||
            .map(AccountState::getAccount)
 | 
			
		||||
            .collect(toImmutableSet());
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user