mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-11-03 07:20:07 -05:00 
			
		
		
		
	Extract updateSession function to reduce repetition (#21735)
A simple refactor to reduce duplicate codes. Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com> Co-authored-by: zeripath <art27@cantab.net> Co-authored-by: delvh <dev.lh@web.de>
This commit is contained in:
		@@ -18,7 +18,6 @@ import (
 | 
			
		||||
	"code.gitea.io/gitea/modules/log"
 | 
			
		||||
	"code.gitea.io/gitea/modules/mcaptcha"
 | 
			
		||||
	"code.gitea.io/gitea/modules/recaptcha"
 | 
			
		||||
	"code.gitea.io/gitea/modules/session"
 | 
			
		||||
	"code.gitea.io/gitea/modules/setting"
 | 
			
		||||
	"code.gitea.io/gitea/modules/web"
 | 
			
		||||
	auth_service "code.gitea.io/gitea/services/auth"
 | 
			
		||||
@@ -156,25 +155,16 @@ func linkAccount(ctx *context.Context, u *user_model.User, gothUser goth.User, r
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if _, err := session.RegenerateSession(ctx.Resp, ctx.Req); err != nil {
 | 
			
		||||
	if err := updateSession(ctx, nil, map[string]interface{}{
 | 
			
		||||
		// User needs to use 2FA, save data and redirect to 2FA page.
 | 
			
		||||
		"twofaUid":      u.ID,
 | 
			
		||||
		"twofaRemember": remember,
 | 
			
		||||
		"linkAccount":   true,
 | 
			
		||||
	}); err != nil {
 | 
			
		||||
		ctx.ServerError("RegenerateSession", err)
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// User needs to use 2FA, save data and redirect to 2FA page.
 | 
			
		||||
	if err := ctx.Session.Set("twofaUid", u.ID); err != nil {
 | 
			
		||||
		log.Error("Error setting twofaUid in session: %v", err)
 | 
			
		||||
	}
 | 
			
		||||
	if err := ctx.Session.Set("twofaRemember", remember); err != nil {
 | 
			
		||||
		log.Error("Error setting twofaRemember in session: %v", err)
 | 
			
		||||
	}
 | 
			
		||||
	if err := ctx.Session.Set("linkAccount", true); err != nil {
 | 
			
		||||
		log.Error("Error setting linkAccount in session: %v", err)
 | 
			
		||||
	}
 | 
			
		||||
	if err := ctx.Session.Release(); err != nil {
 | 
			
		||||
		log.Error("Error storing session: %v", err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// If WebAuthn is enrolled -> Redirect to WebAuthn instead
 | 
			
		||||
	regs, err := auth.GetWebAuthnCredentialsByUID(u.ID)
 | 
			
		||||
	if err == nil && len(regs) > 0 {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user