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