diff options
Diffstat (limited to 'gerrit-server/src/main/java/com/google/gerrit/server/account/GroupMembers.java')
-rw-r--r-- | gerrit-server/src/main/java/com/google/gerrit/server/account/GroupMembers.java | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/account/GroupMembers.java b/gerrit-server/src/main/java/com/google/gerrit/server/account/GroupMembers.java index 84282b5ba5..08cf1a7983 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/account/GroupMembers.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/account/GroupMembers.java @@ -18,14 +18,15 @@ import com.google.gerrit.common.data.GroupDetail; import com.google.gerrit.common.errors.NoSuchGroupException; import com.google.gerrit.reviewdb.client.Account; import com.google.gerrit.reviewdb.client.AccountGroup; -import com.google.gerrit.reviewdb.client.AccountGroupInclude; +import com.google.gerrit.reviewdb.client.AccountGroupIncludeByUuid; import com.google.gerrit.reviewdb.client.AccountGroupMember; import com.google.gerrit.reviewdb.client.Project; -import com.google.gerrit.server.IdentifiedUser; +import com.google.gerrit.server.CurrentUser; import com.google.gerrit.server.project.NoSuchProjectException; import com.google.gerrit.server.project.ProjectControl; import com.google.gwtorm.server.OrmException; import com.google.inject.Inject; +import com.google.inject.assistedinject.Assisted; import java.util.Collections; import java.util.HashSet; @@ -33,21 +34,21 @@ import java.util.Set; public class GroupMembers { public interface Factory { - GroupMembers create(); + GroupMembers create(CurrentUser currentUser); } private final GroupCache groupCache; private final GroupDetailFactory.Factory groupDetailFactory; private final AccountCache accountCache; private final ProjectControl.GenericFactory projectControl; - private final IdentifiedUser currentUser; + private final CurrentUser currentUser; @Inject GroupMembers(final GroupCache groupCache, final GroupDetailFactory.Factory groupDetailFactory, final AccountCache accountCache, final ProjectControl.GenericFactory projectControl, - final IdentifiedUser currentUser) { + @Assisted final CurrentUser currentUser) { this.groupCache = groupCache; this.groupDetailFactory = groupDetailFactory; this.accountCache = accountCache; @@ -111,10 +112,10 @@ public class GroupMembers { } } if (groupDetail.includes != null) { - for (final AccountGroupInclude groupInclude : groupDetail.includes) { + for (final AccountGroupIncludeByUuid groupInclude : groupDetail.includes) { final AccountGroup includedGroup = - groupCache.get(groupInclude.getIncludeId()); - if (!seen.contains(includedGroup.getGroupUUID())) { + groupCache.get(groupInclude.getIncludeUUID()); + if (includedGroup != null && !seen.contains(includedGroup.getGroupUUID())) { members.addAll(listAccounts(includedGroup.getGroupUUID(), project, seen)); } } |