Allow InternalUser (aka plugins) to see any internal group

Permit plugins using the InternalUser as their current context user
to parse any group they know the name of. This will eventually allow
replication plugin to resolve authGroups from replication.config.

Bug: issue 1827
Change-Id: Ia9681b4e39a47ff1052225258e07f59435bc09cf
This commit is contained in:
Shawn Pearce
2013-04-23 16:40:45 -07:00
parent 98c89249c5
commit 526e021526

View File

@@ -21,6 +21,7 @@ import com.google.gerrit.reviewdb.client.Account;
import com.google.gerrit.reviewdb.client.AccountGroup;
import com.google.gerrit.server.CurrentUser;
import com.google.gerrit.server.IdentifiedUser;
import com.google.gerrit.server.InternalUser;
import com.google.inject.Inject;
import com.google.inject.Provider;
import com.google.inject.Singleton;
@@ -127,6 +128,7 @@ public class GroupControl {
public boolean isVisible() {
AccountGroup accountGroup = GroupDescriptions.toAccountGroup(group);
return (accountGroup != null && accountGroup.isVisibleToAll())
|| user instanceof InternalUser
|| user.getEffectiveGroups().contains(group.getGroupUUID())
|| isOwner();
}