aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--models/user.go7
-rw-r--r--modules/auth/ldap/ldap.go10
2 files changed, 11 insertions, 6 deletions
diff --git a/models/user.go b/models/user.go
index c8664cc4c8..ed0fe524e4 100644
--- a/models/user.go
+++ b/models/user.go
@@ -1673,7 +1673,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
diff --git a/modules/auth/ldap/ldap.go b/modules/auth/ldap/ldap.go
index ddeaf12430..ed83a77e12 100644
--- a/modules/auth/ldap/ldap.go
+++ b/modules/auth/ldap/ldap.go
@@ -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
}