fix new users could not be automatically created when signing in via oauth 2.0

This commit is contained in:
MaysWind
2025-10-21 23:59:18 +08:00
parent 46e275d843
commit a42c5fa988
4 changed files with 11 additions and 8 deletions

View File

@@ -242,7 +242,6 @@ func (a *OAuth2AuthenticationApi) CallbackHandler(c *core.WebContext) (string, *
Username: userName,
Email: email,
Nickname: nickName,
Password: "",
Language: languageCode,
DefaultCurrency: currencyCode,
FirstDayOfWeek: oauth2UserInfo.FirstDayOfWeek,
@@ -251,7 +250,7 @@ func (a *OAuth2AuthenticationApi) CallbackHandler(c *core.WebContext) (string, *
FeatureRestriction: a.CurrentConfig().DefaultFeatureRestrictions,
}
err = a.users.CreateUser(c, user)
err = a.users.CreateUser(c, user, true)
if err != nil {
log.Errorf(c, "[oauth2_authentications.CallbackHandler] failed to create user \"%s\", because %s", user.Username, err.Error())
@@ -260,7 +259,7 @@ func (a *OAuth2AuthenticationApi) CallbackHandler(c *core.WebContext) (string, *
log.Infof(c, "[oauth2_authentications.CallbackHandler] user \"%s\" has registered successfully, uid is %d", user.Username, user.Uid)
userExternalAuth := &models.UserExternalAuth{
userExternalAuth = &models.UserExternalAuth{
Uid: user.Uid,
ExternalAuthType: userExternalAuthType,
ExternalUsername: oauth2UserInfo.UserName,

View File

@@ -83,7 +83,7 @@ func (a *UsersApi) UserRegisterHandler(c *core.WebContext) (any, *errs.Error) {
FeatureRestriction: a.CurrentConfig().DefaultFeatureRestrictions,
}
err = a.users.CreateUser(c, user)
err = a.users.CreateUser(c, user, false)
if err != nil {
log.Errorf(c, "[users.UserRegisterHandler] failed to create user \"%s\", because %s", user.Username, err.Error())

View File

@@ -91,7 +91,7 @@ func (l *UserDataCli) AddNewUser(c *core.CliContext, username string, email stri
FeatureRestriction: l.CurrentConfig().DefaultFeatureRestrictions,
}
err := l.users.CreateUser(c, user)
err := l.users.CreateUser(c, user, false)
if err != nil {
log.CliErrorf(c, "[user_data.AddNewUser] failed to create user \"%s\", because %s", user.Username, err.Error())

View File

@@ -184,7 +184,7 @@ func (s *UserService) GetUserAvatar(c core.Context, uid int64, fileExtension str
}
// CreateUser saves a new user model to database
func (s *UserService) CreateUser(c core.Context, user *models.User) error {
func (s *UserService) CreateUser(c core.Context, user *models.User, noPassword bool) error {
exists, err := s.ExistsUsername(c, user.Username)
if err != nil {
@@ -201,7 +201,7 @@ func (s *UserService) CreateUser(c core.Context, user *models.User) error {
return errs.ErrUserEmailAlreadyExists
}
if user.Password == "" {
if !noPassword && user.Password == "" {
return errs.ErrPasswordIsEmpty
}
@@ -215,7 +215,11 @@ func (s *UserService) CreateUser(c core.Context, user *models.User) error {
return errs.ErrSystemIsBusy
}
user.Password = utils.EncodePassword(user.Password, user.Salt)
if !noPassword {
user.Password = utils.EncodePassword(user.Password, user.Salt)
} else {
user.Password = ""
}
user.Deleted = false