]> source.dussan.org Git - gitea.git/commitdiff
Prevent panic in stopwatch (#10670) (#10673)
authorzeripath <art27@cantab.net>
Sun, 8 Mar 2020 19:14:27 +0000 (19:14 +0000)
committerGitHub <noreply@github.com>
Sun, 8 Mar 2020 19:14:27 +0000 (21:14 +0200)
Signed-off-by: Andrew Thornton <art27@cantab.net>
routers/api/v1/repo/issue_stopwatch.go

index 3b7c20d4d3fec9836f69a67d30d4bfafab5cc57f..1da0323f0580af7968977cbf1413f33f8aed16d1 100644 (file)
@@ -5,6 +5,7 @@
 package repo
 
 import (
+       "errors"
        "net/http"
 
        "code.gitea.io/gitea/models"
@@ -172,19 +173,21 @@ func prepareIssueStopwatch(ctx *context.APIContext, shouldExist bool) (*models.I
 
        if !ctx.Repo.CanWriteIssuesOrPulls(issue.IsPull) {
                ctx.Status(http.StatusForbidden)
-               return nil, err
+               return nil, errors.New("Unable to write to PRs")
        }
 
        if !ctx.Repo.CanUseTimetracker(issue, ctx.User) {
                ctx.Status(http.StatusForbidden)
-               return nil, err
+               return nil, errors.New("Cannot use time tracker")
        }
 
        if models.StopwatchExists(ctx.User.ID, issue.ID) != shouldExist {
                if shouldExist {
                        ctx.Error(http.StatusConflict, "StopwatchExists", "cannot stop/cancel a non existent stopwatch")
+                       err = errors.New("cannot stop/cancel a non existent stopwatch")
                } else {
                        ctx.Error(http.StatusConflict, "StopwatchExists", "cannot start a stopwatch again if it already exists")
+                       err = errors.New("cannot start a stopwatch again if it already exists")
                }
                return nil, err
        }