Merge branch 'stable-2.12'
* stable-2.12:
MergeValidationListener: Adjust to the changed onPreMerge() signature
Change-Id: I2297bc0f4582dbe054f28701adc1150136887d08
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 3217fd1..ca48312 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/cookbook/MergeUserValidator.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/cookbook/MergeUserValidator.java
@@ -16,16 +16,11 @@
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.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;
@@ -38,41 +33,16 @@
@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(
- "Missing submitter record for " + patchSetId);
- }
- IdentifiedUser submitter =
- identifiedUserFactory.create(psa.getAccountId());
- if (!submitter.getCapabilities().canAdministrateServer()) {
- throw new MergeValidationException("Submitter " + submitter.getNameEmail()
+ ProjectState destProject, Branch.NameKey destBranch,
+ PatchSet.Id patchSetId, IdentifiedUser caller)
+ throws MergeValidationException {
+ if (!caller.getCapabilities().canAdministrateServer()) {
+ throw new MergeValidationException("Submitter " + caller.getNameEmail()
+ " is not a site administrator");
}
}