]> source.dussan.org Git - gitea.git/commitdiff
Let not-logged-in users view releases (#1999)
authorEthan Koenig <etk39@cornell.edu>
Sun, 18 Jun 2017 03:38:24 +0000 (23:38 -0400)
committerLunny Xiao <xiaolunwen@gmail.com>
Sun, 18 Jun 2017 03:38:24 +0000 (11:38 +0800)
integrations/release_test.go
routers/repo/release.go
routers/routes/routes.go

index ce33ad61d9c12f6b7475159821ba14e8843e8a18..f097531a35732a70f27337d0bc6de2e05d47e599 100644 (file)
@@ -19,3 +19,11 @@ func TestViewReleases(t *testing.T) {
        resp := session.MakeRequest(t, req)
        assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
 }
+
+func TestViewReleasesNoLogin(t *testing.T) {
+       prepareTestEnv(t)
+
+       req := NewRequest(t, "GET", "/user2/repo1/releases")
+       resp := MakeRequest(req)
+       assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
+}
index 70a310cc1353744e52b939daf4d4958044b16817..093fec539af76bb9180218303ed40b82a2e38546 100644 (file)
@@ -79,7 +79,10 @@ func Releases(ctx *context.Context) {
 
        // Temporary cache commits count of used branches to speed up.
        countCache := make(map[string]int64)
-       cacheUsers := map[int64]*models.User{ctx.User.ID: ctx.User}
+       cacheUsers := make(map[int64]*models.User)
+       if ctx.User != nil {
+               cacheUsers[ctx.User.ID] = ctx.User
+       }
        var ok bool
 
        releasesToDisplay := make([]*models.Release, 0, len(releases))
index c45cfd0e0c44e0c8fe79ea0449eb07c5d872be27..c2f29613b4f0262935d399e68f67f7f5575401a1 100644 (file)
@@ -529,14 +529,16 @@ func RegisterRoutes(m *macaron.Macaron) {
        m.Group("/:username/:reponame", func() {
                m.Group("/releases", func() {
                        m.Get("/", repo.MustBeNotBare, repo.Releases)
+               }, repo.MustBeNotBare, context.RepoRef())
+               m.Group("/releases", func() {
                        m.Get("/new", repo.NewRelease)
                        m.Post("/new", bindIgnErr(auth.NewReleaseForm{}), repo.NewReleasePost)
                        m.Post("/delete", repo.DeleteRelease)
-               }, repo.MustBeNotBare, reqRepoWriter, context.RepoRef())
+               }, reqSignIn, repo.MustBeNotBare, reqRepoWriter, context.RepoRef())
                m.Group("/releases", func() {
                        m.Get("/edit/*", repo.EditRelease)
                        m.Post("/edit/*", bindIgnErr(auth.EditReleaseForm{}), repo.EditReleasePost)
-               }, repo.MustBeNotBare, reqRepoWriter, func(ctx *context.Context) {
+               }, reqSignIn, repo.MustBeNotBare, reqRepoWriter, func(ctx *context.Context) {
                        var err error
                        ctx.Repo.Commit, err = ctx.Repo.GitRepo.GetBranchCommit(ctx.Repo.Repository.DefaultBranch)
                        if err != nil {
@@ -550,7 +552,7 @@ func RegisterRoutes(m *macaron.Macaron) {
                        }
                        ctx.Data["CommitsCount"] = ctx.Repo.CommitsCount
                })
-       }, reqSignIn, context.RepoAssignment(), context.UnitTypes(), context.LoadRepoUnits(), context.CheckUnit(models.UnitTypeReleases))
+       }, context.RepoAssignment(), context.UnitTypes(), context.LoadRepoUnits(), context.CheckUnit(models.UnitTypeReleases))
 
        m.Group("/:username/:reponame", func() {
                m.Group("", func() {