Adapt to permission backend Change-Id: I2bc1f09eeb306e265c2ee2977b921f2aa47cdf02
diff --git a/src/main/java/com/googlesource/gerrit/plugins/branchnetwork/canvas/GitGraphServlet.java b/src/main/java/com/googlesource/gerrit/plugins/branchnetwork/canvas/GitGraphServlet.java index aa98e68..8248982 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/branchnetwork/canvas/GitGraphServlet.java +++ b/src/main/java/com/googlesource/gerrit/plugins/branchnetwork/canvas/GitGraphServlet.java
@@ -28,13 +28,16 @@ import com.google.gerrit.common.data.GitwebType; import com.google.gerrit.extensions.annotations.PluginCanonicalWebUrl; +import com.google.gerrit.extensions.restapi.AuthException; import com.google.gerrit.reviewdb.client.Project; +import com.google.gerrit.server.CurrentUser; import com.google.gerrit.server.config.GitwebConfig; import com.google.gerrit.server.git.GitRepositoryManager; -import com.google.gerrit.server.project.NoSuchProjectException; -import com.google.gerrit.server.project.ProjectControl; -import com.google.gerrit.server.project.ProjectControl.Factory; +import com.google.gerrit.server.permissions.PermissionBackend; +import com.google.gerrit.server.permissions.PermissionBackendException; +import com.google.gerrit.server.permissions.ProjectPermission; import com.google.inject.Inject; +import com.google.inject.Provider; import com.google.inject.Singleton; @Singleton @@ -44,23 +47,26 @@ private static final int PROGRESS_BAR_WIDTH = 208; private static final int PROGRESS_BAR_HEIGHT = 13; private String canonicalPath; - private Factory projectControl; private GitRepositoryManager repoManager; private GitwebConfig gitWebConfig; private String pluginCanonicalWebUrl; + private final Provider<CurrentUser> user; + private final PermissionBackend permissionBackend; @Inject public GitGraphServlet(@PluginCanonicalWebUrl String url, GitwebConfig gitWebConfig, - final ProjectControl.Factory projectControl, - final GitRepositoryManager repoManager) + final GitRepositoryManager repoManager, + Provider<CurrentUser> user, + PermissionBackend permissionBackend) throws MalformedURLException { this.canonicalPath = new URL(url).getPath(); this.pluginCanonicalWebUrl = url.substring(0, url.length() - (canonicalPath.length() - 1)); - this.projectControl = projectControl; this.repoManager = repoManager; this.gitWebConfig = gitWebConfig; + this.user = user; + this.permissionBackend = permissionBackend; } @Override @@ -86,8 +92,8 @@ final Project.NameKey nameKey = new Project.NameKey(repoName); try { - projectControl.validateFor(nameKey); - } catch (NoSuchProjectException e) { + permissionBackend.user(user).project(nameKey).check(ProjectPermission.ACCESS); + } catch (AuthException | PermissionBackendException e) { resp.sendError(HttpServletResponse.SC_NOT_FOUND); return; }