LDAP: Search all DNs for users (#38891)

This commit is contained in:
Emil Tullstedt
2021-09-14 10:49:37 +02:00
committed by GitHub
parent 98cca6317d
commit ad971cc9be
6 changed files with 842 additions and 810 deletions
+14 -9
View File
@@ -6,10 +6,11 @@ import (
"gopkg.in/ldap.v3"
)
type searchFunc = func(request *ldap.SearchRequest) (*ldap.SearchResult, error)
// MockConnection struct for testing
type MockConnection struct {
SearchResult *ldap.SearchResult
SearchError error
SearchFunc searchFunc
SearchCalled bool
SearchAttributes []string
@@ -56,11 +57,19 @@ func (c *MockConnection) Close() {
}
func (c *MockConnection) setSearchResult(result *ldap.SearchResult) {
c.SearchResult = result
c.SearchFunc = func(request *ldap.SearchRequest) (*ldap.SearchResult, error) {
return result, nil
}
}
func (c *MockConnection) setSearchError(err error) {
c.SearchError = err
c.SearchFunc = func(request *ldap.SearchRequest) (*ldap.SearchResult, error) {
return nil, err
}
}
func (c *MockConnection) setSearchFunc(fn searchFunc) {
c.SearchFunc = fn
}
// Search mocks Search connection function
@@ -68,11 +77,7 @@ func (c *MockConnection) Search(sr *ldap.SearchRequest) (*ldap.SearchResult, err
c.SearchCalled = true
c.SearchAttributes = sr.Attributes
if c.SearchError != nil {
return nil, c.SearchError
}
return c.SearchResult, nil
return c.SearchFunc(sr)
}
// Add mocks Add connection function