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