mirror of
https://github.com/zitadel/zitadel.git
synced 2025-08-12 07:57:32 +00:00
fix: check user is unique (#1678)
This commit is contained in:
@@ -63,7 +63,7 @@ func AddHumanUserRequestToDomain(req *mgmt_pb.AddHumanUserRequest) *domain.Human
|
||||
}
|
||||
}
|
||||
if req.InitialPassword != "" {
|
||||
h.Password = &domain.Password{SecretString: req.InitialPassword}
|
||||
h.Password = &domain.Password{SecretString: req.InitialPassword, ChangeRequired: true}
|
||||
}
|
||||
|
||||
return h
|
||||
@@ -95,7 +95,7 @@ func ImportHumanUserRequestToDomain(req *mgmt_pb.ImportHumanUserRequest) *domain
|
||||
}
|
||||
if req.Password != "" {
|
||||
h.Password = &domain.Password{SecretString: req.Password}
|
||||
h.Password.ChangeRequired = true
|
||||
h.Password.ChangeRequired = req.PasswordChangeRequired
|
||||
}
|
||||
|
||||
return h
|
||||
|
@@ -131,20 +131,31 @@ func GetGlobalUserByLoginName(db *gorm.DB, table, loginName string) (*model.User
|
||||
|
||||
func IsUserUnique(db *gorm.DB, table, userName, email string) (bool, error) {
|
||||
user := new(model.UserView)
|
||||
query := repository.PrepareGetByKey(table, model.UserSearchKey(usr_model.UserSearchKeyEmail), email)
|
||||
err := query(db, user)
|
||||
if err != nil && !caos_errs.IsNotFound(err) {
|
||||
return false, err
|
||||
|
||||
emailUnique := email == ""
|
||||
userNameUnique := userName == ""
|
||||
if email != "" {
|
||||
query := repository.PrepareGetByKey(table, model.UserSearchKey(usr_model.UserSearchKeyEmail), email)
|
||||
err := query(db, user)
|
||||
if err != nil && !caos_errs.IsNotFound(err) {
|
||||
return false, err
|
||||
}
|
||||
if caos_errs.IsNotFound(err) {
|
||||
emailUnique = true
|
||||
}
|
||||
}
|
||||
if user.UserName != "" {
|
||||
return false, nil
|
||||
if userName != "" {
|
||||
query := repository.PrepareGetByKey(table, model.UserSearchKey(usr_model.UserSearchKeyUserName), userName)
|
||||
err := query(db, user)
|
||||
if err != nil && !caos_errs.IsNotFound(err) {
|
||||
return false, err
|
||||
}
|
||||
if caos_errs.IsNotFound(err) {
|
||||
userNameUnique = true
|
||||
}
|
||||
}
|
||||
query = repository.PrepareGetByKey(table, model.UserSearchKey(usr_model.UserSearchKeyUserName), userName)
|
||||
err = query(db, user)
|
||||
if err != nil && !caos_errs.IsNotFound(err) {
|
||||
return false, err
|
||||
}
|
||||
return user.UserName == "", nil
|
||||
|
||||
return emailUnique && userNameUnique, nil
|
||||
}
|
||||
|
||||
func UserMFAs(db *gorm.DB, table, userID string) ([]*usr_model.MultiFactor, error) {
|
||||
|
Reference in New Issue
Block a user