diff --git a/controllers/ldap.go b/controllers/ldap.go index 2f307821..d7452d4c 100644 --- a/controllers/ldap.go +++ b/controllers/ldap.go @@ -27,10 +27,10 @@ type LdapResp struct { ExistUuids []string `json:"existUuids"` } -//type LdapRespGroup struct { +// type LdapRespGroup struct { // GroupId string // GroupName string -//} +// } type LdapSyncResp struct { Exist []object.LdapUser `json:"exist"` @@ -61,18 +61,18 @@ func (c *ApiController) GetLdapUsers() { } defer conn.Close() - //groupsMap, err := conn.GetLdapGroups(ldapServer.BaseDn) - //if err != nil { + // groupsMap, err := conn.GetLdapGroups(ldapServer.BaseDn) + // if err != nil { // c.ResponseError(err.Error()) // return - //} + // } - //for _, group := range groupsMap { + // for _, group := range groupsMap { // resp.Groups = append(resp.Groups, LdapRespGroup{ // GroupId: group.GidNumber, // GroupName: group.Cn, // }) - //} + // } users, err := conn.GetLdapUsers(ldapServer) if err != nil { @@ -269,7 +269,11 @@ func (c *ApiController) SyncLdapUsers() { 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{ Exist: exist, diff --git a/object/ldap_autosync.go b/object/ldap_autosync.go index 8c80a8dc..591abe4f 100644 --- a/object/ldap_autosync.go +++ b/object/ldap_autosync.go @@ -106,6 +106,12 @@ func (l *LdapAutoSynchronizer) syncRoutine(ldap *Ldap, stopChan chan struct{}) e } 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 { 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()) diff --git a/object/user.go b/object/user.go index 3680d59d..911751f6 100644 --- a/object/user.go +++ b/object/user.go @@ -834,6 +834,16 @@ func AddUser(user *User) (bool, error) { 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" { user.Password = organization.DefaultPassword }