fix(keystone): avoid panic (#20433)

This commit is contained in:
屈轩
2024-06-01 17:47:51 +08:00
committed by GitHub
parent b29390d0e6
commit f3e4f3b0d0

View File

@@ -1051,6 +1051,7 @@ func (self *SIdentityProvider) SyncOrCreateUser(ctx context.Context, extId strin
return nil, errors.Wrap(err, "db.NewModelObject")
}
user := userObj.(*SUser)
user.SetModelManager(UserManager, user)
q := UserManager.RawQuery().Equals("id", userId)
err = q.First(user)
if err != nil && err != sql.ErrNoRows {
@@ -1083,9 +1084,6 @@ func (self *SIdentityProvider) SyncOrCreateUser(ctx context.Context, extId strin
return nil, errors.Wrap(err, "Update")
}
} else {
if syncUserInfo != nil {
syncUserInfo(user)
}
if enableDefault {
user.Enabled = tristate.True
} else {
@@ -1109,6 +1107,9 @@ func (self *SIdentityProvider) SyncOrCreateUser(ctx context.Context, extId strin
if err != nil {
return nil, errors.Wrap(err, "Insert")
}
if syncUserInfo != nil {
syncUserInfo(user)
}
}
return user, nil
}