MergeValidationListener: Adjust to the changed onPreMerge() signature

Change-Id: Idb5c4605a9470762c7c04406263a077d95b63295
diff --git a/src/main/java/com/googlesource/gerrit/plugins/cookbook/MergeUserValidator.java b/src/main/java/com/googlesource/gerrit/plugins/cookbook/MergeUserValidator.java
index 2e35854..0147839 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/cookbook/MergeUserValidator.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/cookbook/MergeUserValidator.java
@@ -16,17 +16,12 @@
 
 import com.google.gerrit.reviewdb.client.Branch;
 import com.google.gerrit.reviewdb.client.PatchSet;
-import com.google.gerrit.reviewdb.client.PatchSetApproval;
-import com.google.gerrit.reviewdb.server.ReviewDb;
-import com.google.gerrit.server.ApprovalsUtil;
 import com.google.gerrit.server.IdentifiedUser;
 import com.google.gerrit.server.git.CodeReviewCommit;
 import com.google.gerrit.server.git.CommitMergeStatus;
 import com.google.gerrit.server.git.validators.MergeValidationException;
 import com.google.gerrit.server.git.validators.MergeValidationListener;
 import com.google.gerrit.server.project.ProjectState;
-import com.google.inject.Inject;
-import com.google.inject.Provider;
 import com.google.inject.Singleton;
 
 import org.eclipse.jgit.lib.Repository;
@@ -39,39 +34,15 @@
 @Singleton
 public class MergeUserValidator implements MergeValidationListener {
 
-  private final IdentifiedUser.GenericFactory identifiedUserFactory;
-  private final Provider<ReviewDb> reviewDb;
-  private final ApprovalsUtil approvalsUtil;
-
-
-  // Because there is 'No user on merge thread' we need to get the
-  // identified user from IdentifiedUser.GenericFactory, this is
-  // normally not needed and you can, in many cases, just use
-  // Provider<CurrentUser>, unfortunately not this one.
-  @Inject
-  MergeUserValidator(IdentifiedUser.GenericFactory identifiedUserFactory,
-      Provider<ReviewDb> reviewDb,
-      ApprovalsUtil approvalsUtil) {
-    this.identifiedUserFactory = identifiedUserFactory;
-    this.reviewDb = reviewDb;
-    this.approvalsUtil = approvalsUtil;
-  }
-
   /**
    * Reject all merges if the submitter is not an administrator
    */
   @Override
   public void onPreMerge(Repository repo, CodeReviewCommit commit,
-      ProjectState destProject, Branch.NameKey destBranch, PatchSet.Id patchSetId)
-      throws MergeValidationException {
-    PatchSetApproval psa =
-        approvalsUtil.getSubmitter(reviewDb.get(), commit.notes(), patchSetId);
-    if (psa == null) {
-      throw new MergeValidationException(CommitMergeStatus.NO_PATCH_SET);
-    }
-    IdentifiedUser submitter =
-        identifiedUserFactory.create(psa.getAccountId());
-    if (!submitter.getCapabilities().canAdministrateServer()) {
+      ProjectState destProject, Branch.NameKey destBranch,
+      PatchSet.Id patchSetId, IdentifiedUser caller)
+          throws MergeValidationException {
+    if (!caller.getCapabilities().canAdministrateServer()) {
       throw new MergeValidationException(CommitMergeStatus.MISSING_DEPENDENCY);
     }
   }