]> source.dussan.org Git - gitea.git/commitdiff
fix panic, add repo check, signed check
authorslene <vslene@gmail.com>
Fri, 28 Mar 2014 00:38:49 +0000 (08:38 +0800)
committerslene <vslene@gmail.com>
Fri, 28 Mar 2014 00:38:49 +0000 (08:38 +0800)
routers/repo/issue.go

index 23571e759bcdaf970c37c4f1bcb9b105716deea2..ba0669a0ad2ab57561d8256e2bb6d8520c7af906 100644 (file)
@@ -18,6 +18,10 @@ import (
 )
 
 func Issues(ctx *middleware.Context) {
+       if !ctx.Repo.IsValid {
+               ctx.Handle(404, "issue.Issues(invalid repo):", nil)
+       }
+
        ctx.Data["Title"] = "Issues"
        ctx.Data["IsRepoToolbarIssues"] = true
        ctx.Data["IsRepoToolbarIssuesList"] = true
@@ -26,12 +30,17 @@ func Issues(ctx *middleware.Context) {
        milestoneId, _ := base.StrTo(ctx.Query("milestone")).Int()
        page, _ := base.StrTo(ctx.Query("page")).Int()
 
+       ctx.Data["IssueCreatedCount"] = 0
+
        var posterId int64 = 0
        if ctx.Query("type") == "created_by" {
+               if !ctx.IsSigned {
+                       ctx.Redirect("/user/login/", 302)
+               }
                posterId = ctx.User.Id
                ctx.Data["ViewType"] = "created_by"
+               ctx.Data["IssueCreatedCount"] = models.GetUserIssueCount(posterId, ctx.Repo.Repository.Id)
        }
-       ctx.Data["IssueCreatedCount"] = models.GetUserIssueCount(ctx.User.Id, ctx.Repo.Repository.Id)
 
        // Get issues.
        issues, err := models.GetIssues(0, ctx.Repo.Repository.Id, posterId, int64(milestoneId), page,
@@ -60,6 +69,10 @@ func Issues(ctx *middleware.Context) {
 }
 
 func CreateIssue(ctx *middleware.Context, params martini.Params, form auth.CreateIssueForm) {
+       if !ctx.Repo.IsValid {
+               ctx.Handle(404, "issue.CreateIssue(invalid repo):", nil)
+       }
+
        ctx.Data["Title"] = "Create issue"
        ctx.Data["IsRepoToolbarIssues"] = true
        ctx.Data["IsRepoToolbarIssuesList"] = false
@@ -102,6 +115,10 @@ func CreateIssue(ctx *middleware.Context, params martini.Params, form auth.Creat
 }
 
 func ViewIssue(ctx *middleware.Context, params martini.Params) {
+       if !ctx.Repo.IsValid {
+               ctx.Handle(404, "issue.ViewIssue(invalid repo):", nil)
+       }
+
        index, err := base.StrTo(params["index"]).Int()
        if err != nil {
                ctx.Handle(404, "issue.ViewIssue", err)
@@ -154,6 +171,10 @@ func ViewIssue(ctx *middleware.Context, params martini.Params) {
 }
 
 func UpdateIssue(ctx *middleware.Context, params martini.Params, form auth.CreateIssueForm) {
+       if !ctx.Repo.IsValid {
+               ctx.Handle(404, "issue.UpdateIssue(invalid repo):", nil)
+       }
+
        index, err := base.StrTo(params["index"]).Int()
        if err != nil {
                ctx.Handle(404, "issue.UpdateIssue", err)
@@ -190,6 +211,10 @@ func UpdateIssue(ctx *middleware.Context, params martini.Params, form auth.Creat
 }
 
 func Comment(ctx *middleware.Context, params martini.Params) {
+       if !ctx.Repo.IsValid {
+               ctx.Handle(404, "issue.Comment(invalid repo):", nil)
+       }
+
        index, err := base.StrTo(ctx.Query("issueIndex")).Int()
        if err != nil {
                ctx.Handle(404, "issue.Comment", err)