diff options
author | wxiaoguang <wxiaoguang@gmail.com> | 2023-12-30 16:48:34 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-30 08:48:34 +0000 |
commit | e5d8c4b8d4864661caa43516d5937be42bf27f7c (patch) | |
tree | bad9873a26ec0f8ab74b9a157df6224dd1893c1c | |
parent | 3d474110c181df7854576d78e46209908f7e1b52 (diff) | |
download | gitea-e5d8c4b8d4864661caa43516d5937be42bf27f7c.tar.gz gitea-e5d8c4b8d4864661caa43516d5937be42bf27f7c.zip |
Avoid cycle-redirecting user/login page (#28636)
Fix #28231, and remove some unused code. The `db.HasEngine` doesn't seem
useful because the db engine is always initialized before web route.
-rw-r--r-- | models/auth/source.go | 6 | ||||
-rwxr-xr-x | models/db/engine.go | 3 | ||||
-rw-r--r-- | modules/setting/server.go | 3 | ||||
-rw-r--r-- | routers/common/db.go | 1 | ||||
-rw-r--r-- | routers/web/auth/auth.go | 10 |
5 files changed, 7 insertions, 16 deletions
diff --git a/models/auth/source.go b/models/auth/source.go index 8a372c1429..1bdde8235c 100644 --- a/models/auth/source.go +++ b/models/auth/source.go @@ -261,16 +261,12 @@ func (opts FindSourcesOptions) ToConds() builder.Cond { // IsSSPIEnabled returns true if there is at least one activated login // source of type LoginSSPI func IsSSPIEnabled(ctx context.Context) bool { - if !db.HasEngine { - return false - } - exist, err := db.Exist[Source](ctx, FindSourcesOptions{ IsActive: util.OptionalBoolTrue, LoginType: SSPI, }.ToConds()) if err != nil { - log.Error("Active SSPI Sources: %v", err) + log.Error("IsSSPIEnabled: failed to query active SSPI sources: %v", err) return false } return exist diff --git a/models/db/engine.go b/models/db/engine.go index 182d8cd993..99906813ca 100755 --- a/models/db/engine.go +++ b/models/db/engine.go @@ -27,9 +27,6 @@ var ( x *xorm.Engine tables []any initFuncs []func() error - - // HasEngine specifies if we have a xorm.Engine - HasEngine bool ) // Engine represents a xorm engine or session. diff --git a/modules/setting/server.go b/modules/setting/server.go index 80b85eeebd..c09b91612a 100644 --- a/modules/setting/server.go +++ b/modules/setting/server.go @@ -341,8 +341,7 @@ func loadServerFrom(rootCfg ConfigProvider) { LandingPageURL = LandingPageOrganizations case "login": LandingPageURL = LandingPageLogin - case "": - case "home": + case "", "home": LandingPageURL = LandingPageHome default: LandingPageURL = LandingPage(landingPage) diff --git a/routers/common/db.go b/routers/common/db.go index 547f727ce2..a67c9582fa 100644 --- a/routers/common/db.go +++ b/routers/common/db.go @@ -37,7 +37,6 @@ func InitDBEngine(ctx context.Context) (err error) { log.Info("Backing off for %d seconds", int64(setting.Database.DBConnectBackoff/time.Second)) time.Sleep(setting.Database.DBConnectBackoff) } - db.HasEngine = true config.SetDynGetter(system_model.NewDatabaseDynKeyGetter()) return nil } diff --git a/routers/web/auth/auth.go b/routers/web/auth/auth.go index 8f37d05fda..21a72a9521 100644 --- a/routers/web/auth/auth.go +++ b/routers/web/auth/auth.go @@ -45,10 +45,6 @@ const ( // autoSignIn reads cookie and try to auto-login. func autoSignIn(ctx *context.Context) (bool, error) { - if !db.HasEngine { - return false, nil - } - isSucceed := false defer func() { if !isSucceed { @@ -145,7 +141,11 @@ func CheckAutoLogin(ctx *context.Context) bool { if isSucceed { middleware.DeleteRedirectToCookie(ctx.Resp) - ctx.RedirectToFirst(redirectTo, setting.AppSubURL+string(setting.LandingPageURL)) + nextRedirectTo := setting.AppSubURL + string(setting.LandingPageURL) + if setting.LandingPageURL == setting.LandingPageLogin { + nextRedirectTo = setting.AppSubURL + "/" // do not cycle-redirect to the login page + } + ctx.RedirectToFirst(redirectTo, nextRedirectTo) return true } |