@@ -81,14 +81,18 @@ func AutoSignIn(ctx *context.Context) (bool, error) {
81
81
}
82
82
83
83
isSucceed = true
84
- err = ctx .Session .Set ("uid" , u .ID )
85
- if err != nil {
84
+
85
+ // Set session IDs
86
+ if err := ctx .Session .Set ("uid" , u .ID ); err != nil {
86
87
return false , err
87
88
}
88
- err = ctx .Session .Set ("uname" , u .Name )
89
- if err != nil {
89
+ if err := ctx .Session .Set ("uname" , u .Name ); err != nil {
90
+ return false , err
91
+ }
92
+ if err := ctx .Session .Release (); err != nil {
90
93
return false , err
91
94
}
95
+
92
96
ctx .SetCookie (setting .CSRFCookieName , "" , - 1 , setting .AppSubURL , setting .SessionConfig .Domain , setting .SessionConfig .Secure , true )
93
97
return true , nil
94
98
}
@@ -203,14 +207,16 @@ func SignInPost(ctx *context.Context, form auth.SignInForm) {
203
207
}
204
208
205
209
// User needs to use 2FA, save data and redirect to 2FA page.
206
- err = ctx .Session .Set ("twofaUid" , u .ID )
207
- if err != nil {
208
- ctx .ServerError ("UserSignIn" , err )
210
+ if err := ctx .Session .Set ("twofaUid" , u .ID ); err != nil {
211
+ ctx .ServerError ("UserSignIn: Unable to set twofaUid in session" , err )
209
212
return
210
213
}
211
- err = ctx .Session .Set ("twofaRemember" , form .Remember )
212
- if err != nil {
213
- ctx .ServerError ("UserSignIn" , err )
214
+ if err := ctx .Session .Set ("twofaRemember" , form .Remember ); err != nil {
215
+ ctx .ServerError ("UserSignIn: Unable to set twofaRemember in session" , err )
216
+ return
217
+ }
218
+ if err := ctx .Session .Release (); err != nil {
219
+ ctx .ServerError ("UserSignIn: Unable to save session" , err )
214
220
return
215
221
}
216
222
@@ -407,10 +413,14 @@ func U2FChallenge(ctx *context.Context) {
407
413
ctx .ServerError ("u2f.NewChallenge" , err )
408
414
return
409
415
}
410
- if err = ctx .Session .Set ("u2fChallenge" , challenge ); err != nil {
411
- ctx .ServerError ("UserSignIn" , err )
416
+ if err : = ctx .Session .Set ("u2fChallenge" , challenge ); err != nil {
417
+ ctx .ServerError ("UserSignIn: unable to set u2fChallenge in session " , err )
412
418
return
413
419
}
420
+ if err := ctx .Session .Release (); err != nil {
421
+ ctx .ServerError ("UserSignIn: unable to store session" , err )
422
+ }
423
+
414
424
ctx .JSON (200 , challenge .SignRequest (regs .ToRegistrations ()))
415
425
}
416
426
@@ -494,13 +504,14 @@ func handleSignInFull(ctx *context.Context, u *models.User, remember bool, obeyR
494
504
_ = ctx .Session .Delete ("twofaRemember" )
495
505
_ = ctx .Session .Delete ("u2fChallenge" )
496
506
_ = ctx .Session .Delete ("linkAccount" )
497
- err := ctx .Session .Set ("uid" , u .ID )
498
- if err != nil {
499
- log .Error (fmt .Sprintf ("Error setting session: %v" , err ))
507
+ if err := ctx .Session .Set ("uid" , u .ID ); err != nil {
508
+ log .Error ("Error setting uid %d in session: %v" , u .ID , err )
500
509
}
501
- err = ctx .Session .Set ("uname" , u .Name )
502
- if err != nil {
503
- log .Error (fmt .Sprintf ("Error setting session: %v" , err ))
510
+ if err := ctx .Session .Set ("uname" , u .Name ); err != nil {
511
+ log .Error ("Error setting uname %s session: %v" , u .Name , err )
512
+ }
513
+ if err := ctx .Session .Release (); err != nil {
514
+ log .Error ("Unable to store session: %v" , err )
504
515
}
505
516
506
517
// Language setting of the user overwrites the one previously set
@@ -593,9 +604,11 @@ func handleOAuth2SignIn(u *models.User, gothUser goth.User, ctx *context.Context
593
604
594
605
if u == nil {
595
606
// no existing user is found, request attach or new account
596
- err = ctx .Session .Set ("linkAccountGothUser" , gothUser )
597
- if err != nil {
598
- log .Error (fmt .Sprintf ("Error setting session: %v" , err ))
607
+ if err := ctx .Session .Set ("linkAccountGothUser" , gothUser ); err != nil {
608
+ log .Error ("Error setting linkAccountGothUser in session: %v" , err )
609
+ }
610
+ if err := ctx .Session .Release (); err != nil {
611
+ log .Error ("Error storing session: %v" , err )
599
612
}
600
613
ctx .Redirect (setting .AppSubURL + "/user/link_account" )
601
614
return
@@ -610,13 +623,14 @@ func handleOAuth2SignIn(u *models.User, gothUser goth.User, ctx *context.Context
610
623
return
611
624
}
612
625
613
- err = ctx .Session .Set ("uid" , u .ID )
614
- if err != nil {
615
- log .Error (fmt .Sprintf ("Error setting session: %v" , err ))
626
+ if err := ctx .Session .Set ("uid" , u .ID ); err != nil {
627
+ log .Error ("Error setting uid in session: %v" , err )
616
628
}
617
- err = ctx .Session .Set ("uname" , u .Name )
618
- if err != nil {
619
- log .Error (fmt .Sprintf ("Error setting session: %v" , err ))
629
+ if err := ctx .Session .Set ("uname" , u .Name ); err != nil {
630
+ log .Error ("Error setting uname in session: %v" , err )
631
+ }
632
+ if err := ctx .Session .Release (); err != nil {
633
+ log .Error ("Error storing session: %v" , err )
620
634
}
621
635
622
636
// Clear whatever CSRF has right now, force to generate a new one
@@ -645,13 +659,14 @@ func handleOAuth2SignIn(u *models.User, gothUser goth.User, ctx *context.Context
645
659
}
646
660
647
661
// User needs to use 2FA, save data and redirect to 2FA page.
648
- err = ctx .Session .Set ("twofaUid" , u .ID )
649
- if err != nil {
650
- log .Error (fmt .Sprintf ("Error setting session: %v" , err ))
662
+ if err := ctx .Session .Set ("twofaUid" , u .ID ); err != nil {
663
+ log .Error ("Error setting twofaUid in session: %v" , err )
651
664
}
652
- err = ctx .Session .Set ("twofaRemember" , false )
653
- if err != nil {
654
- log .Error (fmt .Sprintf ("Error setting session: %v" , err ))
665
+ if err := ctx .Session .Set ("twofaRemember" , false ); err != nil {
666
+ log .Error ("Error setting twofaRemember in session: %v" , err )
667
+ }
668
+ if err := ctx .Session .Release (); err != nil {
669
+ log .Error ("Error storing session: %v" , err )
655
670
}
656
671
657
672
// If U2F is enrolled -> Redirect to U2F instead
@@ -816,17 +831,17 @@ func LinkAccountPostSignIn(ctx *context.Context, signInForm auth.SignInForm) {
816
831
}
817
832
818
833
// User needs to use 2FA, save data and redirect to 2FA page.
819
- err = ctx .Session .Set ("twofaUid" , u .ID )
820
- if err != nil {
821
- log .Error (fmt .Sprintf ("Error setting session: %v" , err ))
834
+ if err := ctx .Session .Set ("twofaUid" , u .ID ); err != nil {
835
+ log .Error ("Error setting twofaUid in session: %v" , err )
822
836
}
823
- err = ctx .Session .Set ("twofaRemember" , signInForm .Remember )
824
- if err != nil {
825
- log .Error (fmt .Sprintf ("Error setting session: %v" , err ))
837
+ if err := ctx .Session .Set ("twofaRemember" , signInForm .Remember ); err != nil {
838
+ log .Error ("Error setting twofaRemember in session: %v" , err )
826
839
}
827
- err = ctx .Session .Set ("linkAccount" , true )
828
- if err != nil {
829
- log .Error (fmt .Sprintf ("Error setting session: %v" , err ))
840
+ if err := ctx .Session .Set ("linkAccount" , true ); err != nil {
841
+ log .Error ("Error setting linkAccount in session: %v" , err )
842
+ }
843
+ if err := ctx .Session .Release (); err != nil {
844
+ log .Error ("Error storing session: %v" , err )
830
845
}
831
846
832
847
// If U2F is enrolled -> Redirect to U2F instead
@@ -1184,14 +1199,16 @@ func Activate(ctx *context.Context) {
1184
1199
1185
1200
log .Trace ("User activated: %s" , user .Name )
1186
1201
1187
- err = ctx .Session .Set ("uid" , user .ID )
1188
- if err != nil {
1189
- log .Error (fmt .Sprintf ("Error setting session: %v" , err ))
1202
+ if err := ctx .Session .Set ("uid" , user .ID ); err != nil {
1203
+ log .Error (fmt .Sprintf ("Error setting uid in session: %v" , err ))
1190
1204
}
1191
- err = ctx .Session .Set ("uname" , user .Name )
1192
- if err != nil {
1193
- log .Error (fmt .Sprintf ("Error setting session: %v" , err ))
1205
+ if err := ctx .Session .Set ("uname" , user .Name ); err != nil {
1206
+ log .Error (fmt .Sprintf ("Error setting uname in session: %v" , err ))
1194
1207
}
1208
+ if err := ctx .Session .Release (); err != nil {
1209
+ log .Error ("Error storing session: %v" , err )
1210
+ }
1211
+
1195
1212
ctx .Flash .Success (ctx .Tr ("auth.account_activated" ))
1196
1213
ctx .Redirect (setting .AppSubURL + "/" )
1197
1214
return
0 commit comments