Simplify code related to GroupDetailFactory
Change-Id: I05c9ad209897bdbd48f116243ddd66a5c6e13eb8
This commit is contained in:
@@ -14,6 +14,7 @@
|
||||
|
||||
package com.google.gerrit.server.account;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.google.gerrit.common.data.GroupDetail;
|
||||
import com.google.gerrit.common.errors.NoSuchGroupException;
|
||||
import com.google.gerrit.reviewdb.client.AccountGroup;
|
||||
@@ -50,10 +51,9 @@ public class GroupDetailFactory implements Callable<GroupDetail> {
|
||||
@Override
|
||||
public GroupDetail call() throws OrmException, NoSuchGroupException {
|
||||
control = groupControl.validateFor(groupId);
|
||||
GroupDetail detail = new GroupDetail();
|
||||
detail.setMembers(loadMembers());
|
||||
detail.setIncludes(loadIncludes());
|
||||
return detail;
|
||||
List<AccountGroupMember> members = loadMembers();
|
||||
List<AccountGroupById> includes = loadIncludes();
|
||||
return new GroupDetail(members, includes);
|
||||
}
|
||||
|
||||
private List<AccountGroupMember> loadMembers() throws OrmException {
|
||||
@@ -67,14 +67,14 @@ public class GroupDetailFactory implements Callable<GroupDetail> {
|
||||
}
|
||||
|
||||
private List<AccountGroupById> loadIncludes() throws OrmException {
|
||||
List<AccountGroupById> groups = new ArrayList<>();
|
||||
|
||||
for (AccountGroupById m : db.accountGroupById().byGroup(groupId)) {
|
||||
if (control.canSeeGroup()) {
|
||||
groups.add(m);
|
||||
}
|
||||
if (!control.canSeeGroup()) {
|
||||
return ImmutableList.of();
|
||||
}
|
||||
|
||||
List<AccountGroupById> groups = new ArrayList<>();
|
||||
for (AccountGroupById m : db.accountGroupById().byGroup(groupId)) {
|
||||
groups.add(m);
|
||||
}
|
||||
return groups;
|
||||
}
|
||||
}
|
||||
|
@@ -104,17 +104,13 @@ public class GroupMembers {
|
||||
final GroupDetail groupDetail = groupDetailFactory.create(group.getId()).call();
|
||||
|
||||
final Set<Account> members = new HashSet<>();
|
||||
if (groupDetail.members != null) {
|
||||
for (AccountGroupMember member : groupDetail.members) {
|
||||
members.add(accountCache.get(member.getAccountId()).getAccount());
|
||||
}
|
||||
for (AccountGroupMember member : groupDetail.getMembers()) {
|
||||
members.add(accountCache.get(member.getAccountId()).getAccount());
|
||||
}
|
||||
if (groupDetail.includes != null) {
|
||||
for (AccountGroupById groupInclude : groupDetail.includes) {
|
||||
final AccountGroup includedGroup = groupCache.get(groupInclude.getIncludeUUID());
|
||||
if (includedGroup != null && !seen.contains(includedGroup.getGroupUUID())) {
|
||||
members.addAll(listAccounts(includedGroup.getGroupUUID(), project, seen));
|
||||
}
|
||||
for (AccountGroupById groupInclude : groupDetail.getIncludes()) {
|
||||
final AccountGroup includedGroup = groupCache.get(groupInclude.getIncludeUUID());
|
||||
if (includedGroup != null && !seen.contains(includedGroup.getGroupUUID())) {
|
||||
members.addAll(listAccounts(includedGroup.getGroupUUID(), project, seen));
|
||||
}
|
||||
}
|
||||
return members;
|
||||
|
Reference in New Issue
Block a user