]> source.dussan.org Git - gitea.git/commitdiff
Abort syncrhonization from LDAP source if there is some error. (#7965)
authorDavid Svantesson <davidsvantesson@gmail.com>
Sun, 25 Aug 2019 00:59:21 +0000 (02:59 +0200)
committerAntoine GIRARD <sapk@users.noreply.github.com>
Sun, 25 Aug 2019 00:59:21 +0000 (02:59 +0200)
Signed-off-by: David Svantesson <davidsvantesson@gmail.com>
(cherry picked from commit b2d23a138942179d62f9bffdb3df272e9300e35b)

models/user.go
modules/auth/ldap/ldap.go

index cec783ff5fba86a2e89112192ec4226143872b31..e5e30ea9eddb36c8eba0f312a24d40498f8464ff 100644 (file)
@@ -1645,7 +1645,12 @@ func SyncExternalUsers() {
                                return
                        }
 
-                       sr := s.LDAP().SearchEntries()
+                       sr, err := s.LDAP().SearchEntries()
+                       if err != nil {
+                               log.Error("SyncExternalUsers LDAP source failure [%s], skipped", s.Name)
+                               continue
+                       }
+
                        for _, su := range sr {
                                if len(su.Username) == 0 {
                                        continue
index ddeaf12430e13f5cc27086b053373421d89701f0..ed83a77e12f684c6c09ec39e17ac5c3cf33b28d2 100644 (file)
@@ -308,12 +308,12 @@ func (ls *Source) UsePagedSearch() bool {
 }
 
 // SearchEntries : search an LDAP source for all users matching userFilter
-func (ls *Source) SearchEntries() []*SearchResult {
+func (ls *Source) SearchEntries() ([]*SearchResult, error) {
        l, err := dial(ls)
        if err != nil {
                log.Error("LDAP Connect error, %s:%v", ls.Host, err)
                ls.Enabled = false
-               return nil
+               return nil, err
        }
        defer l.Close()
 
@@ -321,7 +321,7 @@ func (ls *Source) SearchEntries() []*SearchResult {
                err := l.Bind(ls.BindDN, ls.BindPassword)
                if err != nil {
                        log.Debug("Failed to bind as BindDN[%s]: %v", ls.BindDN, err)
-                       return nil
+                       return nil, err
                }
                log.Trace("Bound as BindDN %s", ls.BindDN)
        } else {
@@ -350,7 +350,7 @@ func (ls *Source) SearchEntries() []*SearchResult {
        }
        if err != nil {
                log.Error("LDAP Search failed unexpectedly! (%v)", err)
-               return nil
+               return nil, err
        }
 
        result := make([]*SearchResult, len(sr.Entries))
@@ -368,5 +368,5 @@ func (ls *Source) SearchEntries() []*SearchResult {
                }
        }
 
-       return result
+       return result, nil
 }