@@ -101,10 +101,33 @@ func AutoSignIn(ctx *context.Context) (bool, error) {
101
101
return false , err
102
102
}
103
103
104
+ if err := resetLocale (ctx , u ); err != nil {
105
+ return false , err
106
+ }
107
+
104
108
middleware .DeleteCSRFCookie (ctx .Resp )
105
109
return true , nil
106
110
}
107
111
112
+ func resetLocale (ctx * context.Context , u * user_model.User ) error {
113
+ // Language setting of the user overwrites the one previously set
114
+ // If the user does not have a locale set, we save the current one.
115
+ if len (u .Language ) == 0 {
116
+ u .Language = ctx .Locale .Language ()
117
+ if err := user_model .UpdateUserCols (db .DefaultContext , u , "language" ); err != nil {
118
+ return err
119
+ }
120
+ }
121
+
122
+ middleware .SetLocaleCookie (ctx .Resp , u .Language , 0 )
123
+
124
+ if ctx .Locale .Language () != u .Language {
125
+ ctx .Locale = middleware .Locale (ctx .Resp , ctx .Req )
126
+ }
127
+
128
+ return nil
129
+ }
130
+
108
131
func checkAutoLogin (ctx * context.Context ) bool {
109
132
// Check auto-login.
110
133
isSucceed , err := AutoSignIn (ctx )
@@ -832,6 +855,11 @@ func handleOAuth2SignIn(ctx *context.Context, source *login.Source, u *user_mode
832
855
log .Error ("UpdateExternalUser failed: %v" , err )
833
856
}
834
857
858
+ if err := resetLocale (ctx , u ); err != nil {
859
+ ctx .ServerError ("UpdateUserCols" , err )
860
+ return
861
+ }
862
+
835
863
if redirectTo := ctx .GetCookie ("redirect_to" ); len (redirectTo ) > 0 {
836
864
middleware .DeleteRedirectToCookie (ctx .Resp )
837
865
ctx .RedirectToFirst (redirectTo )
@@ -1573,6 +1601,11 @@ func handleAccountActivation(ctx *context.Context, user *user_model.User) {
1573
1601
log .Error ("Error storing session[%s]: %v" , ctx .Session .ID (), err )
1574
1602
}
1575
1603
1604
+ if err := resetLocale (ctx , user ); err != nil {
1605
+ ctx .ServerError ("resetLocale" , err )
1606
+ return
1607
+ }
1608
+
1576
1609
ctx .Flash .Success (ctx .Tr ("auth.account_activated" ))
1577
1610
ctx .Redirect (setting .AppSubURL + "/" )
1578
1611
}
0 commit comments