feat: check application existence in object.AddUser() (#3686)

This commit is contained in:
WindSpiritSR 2025-04-05 16:38:20 +08:00 committed by GitHub
parent 18bb445e71
commit 952538916d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 28 additions and 8 deletions

View File

@ -269,7 +269,11 @@ func (c *ApiController) SyncLdapUsers() {
return return
} }
exist, failed, _ := object.SyncLdapUsers(owner, users, ldapId) exist, failed, err := object.SyncLdapUsers(owner, users, ldapId)
if err != nil {
c.ResponseError(err.Error())
return
}
c.ResponseOk(&LdapSyncResp{ c.ResponseOk(&LdapSyncResp{
Exist: exist, Exist: exist,

View File

@ -106,6 +106,12 @@ func (l *LdapAutoSynchronizer) syncRoutine(ldap *Ldap, stopChan chan struct{}) e
} }
existed, failed, err := SyncLdapUsers(ldap.Owner, AutoAdjustLdapUser(users), ldap.Id) existed, failed, err := SyncLdapUsers(ldap.Owner, AutoAdjustLdapUser(users), ldap.Id)
if err != nil {
conn.Close()
logs.Warning(fmt.Sprintf("autoSync failed for %s, error %s", ldap.Id, err))
continue
}
if len(failed) != 0 { if len(failed) != 0 {
logs.Warning(fmt.Sprintf("ldap autosync,%d new users,but %d user failed during :", len(users)-len(existed)-len(failed), len(failed)), failed) logs.Warning(fmt.Sprintf("ldap autosync,%d new users,but %d user failed during :", len(users)-len(existed)-len(failed), len(failed)), failed)
logs.Warning(err.Error()) logs.Warning(err.Error())

View File

@ -834,6 +834,16 @@ func AddUser(user *User) (bool, error) {
return false, fmt.Errorf("the organization: %s is not found", user.Owner) return false, fmt.Errorf("the organization: %s is not found", user.Owner)
} }
if user.Owner != "built-in" {
applicationCount, err := GetOrganizationApplicationCount(organization.Owner, organization.Name, "", "")
if err != nil {
return false, err
}
if applicationCount == 0 {
return false, fmt.Errorf("The organization: %s should have one application at least", organization.Owner)
}
}
if organization.DefaultPassword != "" && user.Password == "123" { if organization.DefaultPassword != "" && user.Password == "123" {
user.Password = organization.DefaultPassword user.Password = organization.DefaultPassword
} }