Skip to content

Commit

Permalink
Avoid cycle-redirecting user/login page (go-gitea#28636)
Browse files Browse the repository at this point in the history
Fix go-gitea#28231, and remove some unused code. The `db.HasEngine` doesn't seem
useful because the db engine is always initialized before web route.
  • Loading branch information
wxiaoguang authored and silverwind committed Feb 20, 2024
1 parent 037081f commit 58ccac7
Show file tree
Hide file tree
Showing 5 changed files with 7 additions and 16 deletions.
6 changes: 1 addition & 5 deletions models/auth/source.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
3 changes: 0 additions & 3 deletions models/db/engine.go
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
3 changes: 1 addition & 2 deletions modules/setting/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
1 change: 0 additions & 1 deletion routers/common/db.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
Expand Down
10 changes: 5 additions & 5 deletions routers/web/auth/auth.go
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down Expand Up @@ -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
}

Expand Down

0 comments on commit 58ccac7

Please sign in to comment.