fix: allow anonymous theme switching when REQUIRE_SIGNIN_VIEW is set (#38956)

Fixes https://github.com/go-gitea/gitea/issues/38950


Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
This commit is contained in:
bircni
2026-08-18 06:02:52 +02:00
committed by GitHub
parent 19ee791fe7
commit e8e1973e16
2 changed files with 19 additions and 8 deletions
+12 -3
View File
@@ -17,6 +17,7 @@ import (
"gitea.dev/modules/test"
"gitea.dev/modules/translation"
"gitea.dev/modules/web"
"gitea.dev/modules/web/middleware"
"gitea.dev/routers"
"gitea.dev/routers/web/auth"
"gitea.dev/services/context"
@@ -183,9 +184,17 @@ func TestRequireSignInView(t *testing.T) {
t.Run("RequireSignInView", func(t *testing.T) {
defer test.MockVariableValue(&setting.Service.RequireSignInViewStrict, true)()
defer test.MockVariableValue(&testWebRoutes, routers.NormalRoutes())()
req := NewRequest(t, "GET", "/user2/repo1/src/branch/master")
resp := MakeRequest(t, req, http.StatusSeeOther)
assert.Equal(t, "/user/login?redirect_to=%2Fuser2%2Frepo1%2Fsrc%2Fbranch%2Fmaster", resp.Header().Get("Location"))
t.Run("AccessPublicRepo", func(t *testing.T) {
req := NewRequest(t, "GET", "/user2/repo1/src/branch/master")
resp := MakeRequest(t, req, http.StatusSeeOther)
assert.Equal(t, "/user/login?redirect_to=%2Fuser2%2Frepo1%2Fsrc%2Fbranch%2Fmaster", resp.Header().Get("Location"))
})
t.Run("UpdateTheme", func(t *testing.T) {
session := emptyTestSession(t)
req := NewRequest(t, "POST", "/-/web-theme/apply?theme=gitea-dark")
session.MakeRequest(t, req, http.StatusOK)
assert.Equal(t, "gitea-dark", session.GetSiteCookie(middleware.CookieTheme))
})
})
t.Run("BlockAnonymousAccessExpensive", func(t *testing.T) {
defer test.MockVariableValue(&setting.Service.RequireSignInViewStrict, false)()