summaryrefslogtreecommitdiffstats
path: root/gerrit-server/src/main/java/com/google/gerrit/server/account/GroupControl.java
diff options
context:
space:
mode:
Diffstat (limited to 'gerrit-server/src/main/java/com/google/gerrit/server/account/GroupControl.java')
-rw-r--r--gerrit-server/src/main/java/com/google/gerrit/server/account/GroupControl.java7
1 files changed, 6 insertions, 1 deletions
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/account/GroupControl.java b/gerrit-server/src/main/java/com/google/gerrit/server/account/GroupControl.java
index 2a8e7c92a3..2e01f26aec 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/account/GroupControl.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/account/GroupControl.java
@@ -127,10 +127,15 @@ public class GroupControl {
/** Can this user see this group exists? */
public boolean isVisible() {
AccountGroup accountGroup = GroupDescriptions.toAccountGroup(group);
+ /* Check for canAdministrateServer may seem redundant, but allows
+ * for visibility of all groups that are not an internal group to
+ * server administrators.
+ */
return (accountGroup != null && accountGroup.isVisibleToAll())
|| user instanceof InternalUser
|| user.getEffectiveGroups().contains(group.getGroupUUID())
- || isOwner();
+ || isOwner()
+ || user.getCapabilities().canAdministrateServer();
}
public boolean isOwner() {