@ -98,10 +98,33 @@ func AutoSignIn(ctx *context.Context) (bool, error) {
return false , err
}
if err := resetLocale ( ctx , u ) ; err != nil {
return false , err
}
middleware . DeleteCSRFCookie ( ctx . Resp )
return true , nil
}
func resetLocale ( ctx * context . Context , u * models . User ) error {
// Language setting of the user overwrites the one previously set
// If the user does not have a locale set, we save the current one.
if len ( u . Language ) == 0 {
u . Language = ctx . Locale . Language ( )
if err := models . UpdateUserCols ( u , "language" ) ; err != nil {
return err
}
}
middleware . SetLocaleCookie ( ctx . Resp , u . Language , 0 )
if ctx . Locale . Language ( ) != u . Language {
ctx . Locale = middleware . Locale ( ctx . Resp , ctx . Req )
}
return nil
}
func checkAutoLogin ( ctx * context . Context ) bool {
// Check auto-login.
isSucceed , err := AutoSignIn ( ctx )
@ -738,6 +761,11 @@ func handleOAuth2SignIn(ctx *context.Context, u *models.User, gothUser goth.User
log . Error ( "UpdateExternalUser failed: %v" , err )
}
if err := resetLocale ( ctx , u ) ; err != nil {
ctx . ServerError ( "resetLocale" , err )
return
}
if redirectTo := ctx . GetCookie ( "redirect_to" ) ; len ( redirectTo ) > 0 {
middleware . DeleteRedirectToCookie ( ctx . Resp )
ctx . RedirectToFirst ( redirectTo )
@ -1447,6 +1475,11 @@ func handleAccountActivation(ctx *context.Context, user *models.User) {
log . Error ( "Error storing session[%s]: %v" , ctx . Session . ID ( ) , err )
}
if err := resetLocale ( ctx , user ) ; err != nil {
ctx . ServerError ( "resetLocale" , err )
return
}
ctx . Flash . Success ( ctx . Tr ( "auth.account_activated" ) )
ctx . Redirect ( setting . AppSubURL + "/" )
}