summaryrefslogtreecommitdiffstats
path: root/routers
diff options
context:
space:
mode:
authorLanre Adelowo <adelowomailbox@gmail.com>2018-08-20 06:04:01 +0100
committerJonas Franz <info@jonasfranz.software>2018-08-20 07:04:01 +0200
commit6c1a31ffaaddf8ced7c30bf5b1e6e82d66f8c6ee (patch)
treed9a744f9495547f626d591334bc78bc86b8dfc50 /routers
parentfa93857117307a54e6e3feb4a80de6d7d19ccbed (diff)
downloadgitea-6c1a31ffaaddf8ced7c30bf5b1e6e82d66f8c6ee.tar.gz
gitea-6c1a31ffaaddf8ced7c30bf5b1e6e82d66f8c6ee.zip
User shouldn't be able to approve or reject his/her own PR (#4729)
* Make sure author cannot reject/approve their own PR * Disable buttons in templates too * Remove unneccessary if check since the switch below catches it * Fix IsOwner check * Update template and remove new template variable * Add alert template and redirect to diff page on review failure * Redirect to files diff as a little update to #4632
Diffstat (limited to 'routers')
-rw-r--r--routers/repo/pull_review.go24
1 files changed, 22 insertions, 2 deletions
diff --git a/routers/repo/pull_review.go b/routers/repo/pull_review.go
index 7ca02ac809..1269a7a7e7 100644
--- a/routers/repo/pull_review.go
+++ b/routers/repo/pull_review.go
@@ -103,14 +103,34 @@ func SubmitReview(ctx *context.Context, form auth.SubmitReviewForm) {
var err error
reviewType := form.ReviewType()
- if reviewType == models.ReviewTypeUnknown {
+
+ switch reviewType {
+ case models.ReviewTypeUnknown:
ctx.ServerError("GetCurrentReview", fmt.Errorf("unknown ReviewType: %s", form.Type))
return
+
+ // can not approve/reject your own PR
+ case models.ReviewTypeApprove, models.ReviewTypeReject:
+
+ if issue.Poster.ID == ctx.User.ID {
+
+ var translated string
+
+ if reviewType == models.ReviewTypeApprove {
+ translated = ctx.Tr("repo.issues.review.self.approval")
+ } else {
+ translated = ctx.Tr("repo.issues.review.self.rejection")
+ }
+
+ ctx.Flash.Error(translated)
+ ctx.Redirect(fmt.Sprintf("%s/pulls/%d/files", ctx.Repo.RepoLink, issue.Index))
+ return
+ }
}
if form.HasEmptyContent() {
ctx.Flash.Error(ctx.Tr("repo.issues.review.content.empty"))
- ctx.Redirect(fmt.Sprintf("%s/pulls/%d", ctx.Repo.RepoLink, issue.Index))
+ ctx.Redirect(fmt.Sprintf("%s/pulls/%d/files", ctx.Repo.RepoLink, issue.Index))
return
}