diff options
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.java | 7 |
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() { |