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 static com.google.common.collect.ImmutableSet.toImmutableSet;
|
||||||
|
|
||||||
import com.google.common.collect.Sets;
|
import com.google.common.collect.Sets;
|
||||||
|
import com.google.common.collect.Streams;
|
||||||
import com.google.gerrit.common.Nullable;
|
import com.google.gerrit.common.Nullable;
|
||||||
import com.google.gerrit.reviewdb.client.Account;
|
import com.google.gerrit.reviewdb.client.Account;
|
||||||
import com.google.gerrit.reviewdb.client.AccountGroup;
|
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
|
* Recursively enumerate the members of the given group. Should not be used with the
|
||||||
* PROJECT_OWNERS magical group.
|
* 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 {
|
public Set<Account> listAccounts(AccountGroup.UUID groupUUID) throws IOException {
|
||||||
if (SystemGroupBackend.PROJECT_OWNERS.equals(groupUUID)) {
|
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
|
* Recursively enumerate the members of the given group. The project should be specified so the
|
||||||
* PROJECT_OWNERS magical group can be expanded.
|
* 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)
|
public Set<Account> listAccounts(AccountGroup.UUID groupUUID, Project.NameKey project)
|
||||||
throws NoSuchProjectException, IOException {
|
throws NoSuchProjectException, IOException {
|
||||||
@@ -124,7 +129,8 @@ public class GroupMembers {
|
|||||||
.getMembers()
|
.getMembers()
|
||||||
.stream()
|
.stream()
|
||||||
.filter(groupControl::canSeeMember)
|
.filter(groupControl::canSeeMember)
|
||||||
.map(accountCache::get)
|
.map(accountCache::maybeGet)
|
||||||
|
.flatMap(Streams::stream)
|
||||||
.map(AccountState::getAccount)
|
.map(AccountState::getAccount)
|
||||||
.collect(toImmutableSet());
|
.collect(toImmutableSet());
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user