diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeMessages.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeMessages.java index 8236d3dcb1..92b4150cd0 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeMessages.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeMessages.java @@ -23,7 +23,8 @@ public class ChangeMessages extends TranslationBundle { } public String revertChangeDefaultMessage; - public String reviewerNotFound; + public String reviewerNotFoundUser; + public String reviewerNotFoundUserOrGroup; public String groupIsNotAllowed; public String groupHasTooManyMembers; diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/PostReview.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/PostReview.java index cd62e45b31..ae440c82e1 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/change/PostReview.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/PostReview.java @@ -209,7 +209,7 @@ public class PostReview implements RestModifyView reviewerInput.notify = NotifyHandling.NONE; PostReviewers.Addition result = postReviewers.prepareApplication( - revision.getChangeResource(), reviewerInput); + revision.getChangeResource(), reviewerInput, true); reviewerJsonResults.put(reviewerInput.reviewer, result.result); if (result.result.error != null) { hasError = true; diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/PostReviewers.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/PostReviewers.java index f0af5da953..0cdddca11c 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/change/PostReviewers.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/PostReviewers.java @@ -147,7 +147,7 @@ public class PostReviewers throw new BadRequestException("missing reviewer field"); } - Addition addition = prepareApplication(rsrc, input); + Addition addition = prepareApplication(rsrc, input, true); if (addition.op == null) { return addition.result; } @@ -161,18 +161,24 @@ public class PostReviewers return addition.result; } - public Addition prepareApplication(ChangeResource rsrc, AddReviewerInput input) - throws OrmException, RestApiException, IOException { + public Addition prepareApplication(ChangeResource rsrc, + AddReviewerInput input, boolean allowGroup) + throws OrmException, RestApiException, IOException { Account.Id accountId; try { accountId = accounts.parse(input.reviewer).getAccountId(); } catch (UnprocessableEntityException e) { - try { - return putGroup(rsrc, input); - } catch (UnprocessableEntityException e2) { - throw new UnprocessableEntityException(MessageFormat - .format(ChangeMessages.get().reviewerNotFound, input.reviewer)); + if (allowGroup) { + try { + return putGroup(rsrc, input); + } catch (UnprocessableEntityException e2) { + throw new UnprocessableEntityException(MessageFormat.format( + ChangeMessages.get().reviewerNotFoundUserOrGroup, + input.reviewer)); + } } + throw new UnprocessableEntityException(MessageFormat + .format(ChangeMessages.get().reviewerNotFoundUser, input.reviewer)); } return putAccount(input.reviewer, reviewerFactory.create(rsrc, accountId), input.state(), input.notify); diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/PutAssignee.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/PutAssignee.java index 50024362ca..42328a4453 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/change/PutAssignee.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/PutAssignee.java @@ -91,7 +91,7 @@ public class PutAssignee implements reviewerInput.state = ReviewerState.CC; reviewerInput.confirmed = true; reviewerInput.notify = NotifyHandling.NONE; - return postReviewers.prepareApplication(rsrc, reviewerInput); + return postReviewers.prepareApplication(rsrc, reviewerInput, false); } @Override diff --git a/gerrit-server/src/main/resources/com/google/gerrit/server/change/ChangeMessages.properties b/gerrit-server/src/main/resources/com/google/gerrit/server/change/ChangeMessages.properties index f05f23b63c..f34c9928ba 100644 --- a/gerrit-server/src/main/resources/com/google/gerrit/server/change/ChangeMessages.properties +++ b/gerrit-server/src/main/resources/com/google/gerrit/server/change/ChangeMessages.properties @@ -1,7 +1,8 @@ # Changes to this file should also be made in # gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeMessages.properties revertChangeDefaultMessage = Revert \"{0}\"\n\nThis reverts commit {1}. -reviewerNotFound = {0} does not identify a registered user or group +reviewerNotFoundUser = {0} does not identify a registered user +reviewerNotFoundUserOrGroup = {0} does not identify a registered user or group groupIsNotAllowed = The group {0} cannot be added as reviewer. groupHasTooManyMembers = The group {0} has too many members to add them all as reviewers.