@@ -983,11 +983,16 @@ func LinkAccountPostRegister(ctx *context.Context) {
983
983
ctx .Data ["SignInLink" ] = setting .AppSubURL + "/user/link_account_signin"
984
984
ctx .Data ["SignUpLink" ] = setting .AppSubURL + "/user/link_account_signup"
985
985
986
- gothUser := ctx .Session .Get ("linkAccountGothUser" )
987
- if gothUser == nil {
986
+ gothUserInterface := ctx .Session .Get ("linkAccountGothUser" )
987
+ if gothUserInterface == nil {
988
988
ctx .ServerError ("UserSignUp" , errors .New ("not in LinkAccount session" ))
989
989
return
990
990
}
991
+ gothUser , ok := gothUserInterface .(goth.User )
992
+ if ! ok {
993
+ ctx .ServerError ("UserSignUp" , fmt .Errorf ("session linkAccountGothUser type is %t but not goth.User" , gothUserInterface ))
994
+ return
995
+ }
991
996
992
997
if ctx .HasError () {
993
998
ctx .HTML (http .StatusOK , tplLinkAccount )
@@ -1049,7 +1054,7 @@ func LinkAccountPostRegister(ctx *context.Context) {
1049
1054
}
1050
1055
}
1051
1056
1052
- loginSource , err := models .GetActiveOAuth2LoginSourceByName (gothUser .(goth. User ). Provider )
1057
+ loginSource , err := models .GetActiveOAuth2LoginSourceByName (gothUser .Provider )
1053
1058
if err != nil {
1054
1059
ctx .ServerError ("CreateUser" , err )
1055
1060
}
@@ -1061,10 +1066,10 @@ func LinkAccountPostRegister(ctx *context.Context) {
1061
1066
IsActive : ! (setting .Service .RegisterEmailConfirm || setting .Service .RegisterManualConfirm ),
1062
1067
LoginType : models .LoginOAuth2 ,
1063
1068
LoginSource : loginSource .ID ,
1064
- LoginName : gothUser .(goth. User ). UserID ,
1069
+ LoginName : gothUser .UserID ,
1065
1070
}
1066
1071
1067
- if ! createAndHandleCreatedUser (ctx , tplLinkAccount , form , u , gothUser .( * goth. User ) , false ) {
1072
+ if ! createAndHandleCreatedUser (ctx , tplLinkAccount , form , u , & gothUser , false ) {
1068
1073
// error already handled
1069
1074
return
1070
1075
}
0 commit comments