From e31c02d4bf055a9d2a107eb89e0d39062d70f606 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Sat, 29 Apr 2017 13:52:25 +0800 Subject: [PATCH] fix bug on issue view when not login (#1624) * fix bug on issue view when not login * hide issue watch when not login * update the tests * fix test on issue --- integrations/issue_test.go | 21 ++++++++++++++++ models/fixtures/repo_unit.yml | 15 ++++++++++++ routers/repo/issue.go | 24 +++++++++++-------- .../repo/issue/view_content/sidebar.tmpl | 2 ++ 4 files changed, 52 insertions(+), 10 deletions(-) create mode 100644 integrations/issue_test.go create mode 100644 models/fixtures/repo_unit.yml diff --git a/integrations/issue_test.go b/integrations/issue_test.go new file mode 100644 index 00000000000..61ddc12adbb --- /dev/null +++ b/integrations/issue_test.go @@ -0,0 +1,21 @@ +// Copyright 2017 The Gitea Authors. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +package integrations + +import ( + "net/http" + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestNoLoginViewIssue(t *testing.T) { + prepareTestEnv(t) + + req, err := http.NewRequest("GET", "/user2/repo1/issues/1", nil) + assert.NoError(t, err) + resp := MakeRequest(req) + assert.EqualValues(t, http.StatusOK, resp.HeaderCode) +} diff --git a/models/fixtures/repo_unit.yml b/models/fixtures/repo_unit.yml new file mode 100644 index 00000000000..a41784db96e --- /dev/null +++ b/models/fixtures/repo_unit.yml @@ -0,0 +1,15 @@ +- + id: 1 + repo_id: 1 + type: 1 + index: 0 + config: "{}" + created_unix: 946684810 + +- + id: 2 + repo_id: 1 + type: 2 + index: 0 + config: "{}" + created_unix: 946684810 \ No newline at end of file diff --git a/routers/repo/issue.go b/routers/repo/issue.go index 61f79a239cc..254e182bc79 100644 --- a/routers/repo/issue.go +++ b/routers/repo/issue.go @@ -465,16 +465,20 @@ func ViewIssue(ctx *context.Context) { } ctx.Data["Title"] = fmt.Sprintf("#%d - %s", issue.Index, issue.Title) - iw, exists, err := models.GetIssueWatch(ctx.User.ID, issue.ID) - if err != nil { - ctx.Handle(500, "GetIssueWatch", err) - return - } - if !exists { - iw = &models.IssueWatch{ - UserID: ctx.User.ID, - IssueID: issue.ID, - IsWatching: models.IsWatching(ctx.User.ID, ctx.Repo.Repository.ID), + var iw *models.IssueWatch + var exists bool + if ctx.User != nil { + iw, exists, err = models.GetIssueWatch(ctx.User.ID, issue.ID) + if err != nil { + ctx.Handle(500, "GetIssueWatch", err) + return + } + if !exists { + iw = &models.IssueWatch{ + UserID: ctx.User.ID, + IssueID: issue.ID, + IsWatching: models.IsWatching(ctx.User.ID, ctx.Repo.Repository.ID), + } } } ctx.Data["IssueWatch"] = iw diff --git a/templates/repo/issue/view_content/sidebar.tmpl b/templates/repo/issue/view_content/sidebar.tmpl index 28bd755e419..cfb6f183b4b 100644 --- a/templates/repo/issue/view_content/sidebar.tmpl +++ b/templates/repo/issue/view_content/sidebar.tmpl @@ -99,6 +99,7 @@ + {{if $.IssueWatch}}
@@ -119,5 +120,6 @@
+ {{end}}