diff --git a/java/com/google/gerrit/server/restapi/project/ListDashboards.java b/java/com/google/gerrit/server/restapi/project/ListDashboards.java index 06dbdb029c..3808a2f798 100644 --- a/java/com/google/gerrit/server/restapi/project/ListDashboards.java +++ b/java/com/google/gerrit/server/restapi/project/ListDashboards.java @@ -16,6 +16,7 @@ package com.google.gerrit.server.restapi.project; import static com.google.gerrit.reviewdb.client.RefNames.REFS_DASHBOARDS; +import com.google.common.collect.ImmutableList; import com.google.common.flogger.FluentLogger; import com.google.gerrit.extensions.api.projects.DashboardInfo; import com.google.gerrit.extensions.restapi.AuthException; @@ -100,15 +101,15 @@ public class ListDashboards implements RestReadView { private List scan(ProjectState state, String project, boolean setDefault) throws ResourceNotFoundException, IOException, PermissionBackendException { + if (!state.statePermitsRead()) { + return ImmutableList.of(); + } + PermissionBackend.ForProject perm = permissionBackend.currentUser().project(state.getNameKey()); try (Repository git = gitManager.openRepository(state.getNameKey()); RevWalk rw = new RevWalk(git)) { List all = new ArrayList<>(); for (Ref ref : git.getRefDatabase().getRefsByPrefix(REFS_DASHBOARDS)) { - if (!state.statePermitsRead()) { - continue; - } - try { perm.ref(ref.getName()).check(RefPermission.READ); all.addAll(scanDashboards(state.getProject(), git, rw, ref, project, setDefault));