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;
       }