GetGroups: Extract variable to allow easier debugging

Change-Id: I0032074295a9fda80e6d55bcf543f8e99bb72d4b
This commit is contained in:
Alice Kober-Sotzek
2018-03-15 13:54:26 +01:00
parent ef204c7335
commit 2eed5d2ed1

View File

@@ -28,6 +28,7 @@ import com.google.inject.Inject;
import com.google.inject.Singleton; import com.google.inject.Singleton;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Set;
@Singleton @Singleton
public class GetGroups implements RestReadView<AccountResource> { public class GetGroups implements RestReadView<AccountResource> {
@@ -44,8 +45,9 @@ public class GetGroups implements RestReadView<AccountResource> {
public List<GroupInfo> apply(AccountResource resource) throws OrmException { public List<GroupInfo> apply(AccountResource resource) throws OrmException {
IdentifiedUser user = resource.getUser(); IdentifiedUser user = resource.getUser();
Account.Id userId = user.getAccountId(); Account.Id userId = user.getAccountId();
List<GroupInfo> groups = new ArrayList<>(); Set<AccountGroup.UUID> knownGroups = user.getEffectiveGroups().getKnownGroups();
for (AccountGroup.UUID uuid : user.getEffectiveGroups().getKnownGroups()) { List<GroupInfo> visibleGroups = new ArrayList<>();
for (AccountGroup.UUID uuid : knownGroups) {
GroupControl ctl; GroupControl ctl;
try { try {
ctl = groupControlFactory.controlFor(uuid); ctl = groupControlFactory.controlFor(uuid);
@@ -53,9 +55,9 @@ public class GetGroups implements RestReadView<AccountResource> {
continue; continue;
} }
if (ctl.isVisible() && ctl.canSeeMember(userId)) { if (ctl.isVisible() && ctl.canSeeMember(userId)) {
groups.add(json.format(ctl.getGroup())); visibleGroups.add(json.format(ctl.getGroup()));
} }
} }
return groups; return visibleGroups;
} }
} }