Changed order of LDAP-related functions
It makes more sense to have the function that establishes the connection before the rest.
This commit is contained in:
parent
842a4be87e
commit
9bec0ad14e
1 changed files with 24 additions and 24 deletions
48
main.go
48
main.go
|
@ -210,30 +210,6 @@ func usernameFromMember(member string) string {
|
|||
return member[eqPos+1 : commaPos]
|
||||
}
|
||||
|
||||
// Read the list of members from a LDAP group
|
||||
func getGroupMembers(group string, conn *ldap.Conn, fields []string) (members []string) {
|
||||
req := ldap.NewSearchRequest(group, ldap.ScopeBaseObject, ldap.NeverDerefAliases, 1, 0, false, "(objectClass=*)", fields, nil)
|
||||
res, err := conn.Search(req)
|
||||
if err != nil {
|
||||
log.Fatalf("LDAP search for %s: %v", group, err)
|
||||
}
|
||||
|
||||
for _, entry := range res.Entries {
|
||||
for _, attr := range fields {
|
||||
values := entry.GetAttributeValues(attr)
|
||||
if len(values) == 0 {
|
||||
continue
|
||||
}
|
||||
members = make([]string, len(values))
|
||||
for i, value := range values {
|
||||
members[i] = usernameFromMember(value)
|
||||
}
|
||||
break
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// Establish a connection to the LDAP server
|
||||
func getLdapConnection(cfg LdapConfig) (conn *ldap.Conn) {
|
||||
tlsConfig := &tls.Config{
|
||||
|
@ -272,6 +248,30 @@ func getLdapConnection(cfg LdapConfig) (conn *ldap.Conn) {
|
|||
return
|
||||
}
|
||||
|
||||
// Read the list of members from a LDAP group
|
||||
func getGroupMembers(group string, conn *ldap.Conn, fields []string) (members []string) {
|
||||
req := ldap.NewSearchRequest(group, ldap.ScopeBaseObject, ldap.NeverDerefAliases, 1, 0, false, "(objectClass=*)", fields, nil)
|
||||
res, err := conn.Search(req)
|
||||
if err != nil {
|
||||
log.Fatalf("LDAP search for %s: %v", group, err)
|
||||
}
|
||||
|
||||
for _, entry := range res.Entries {
|
||||
for _, attr := range fields {
|
||||
values := entry.GetAttributeValues(attr)
|
||||
if len(values) == 0 {
|
||||
continue
|
||||
}
|
||||
members = make([]string, len(values))
|
||||
for i, value := range values {
|
||||
members[i] = usernameFromMember(value)
|
||||
}
|
||||
break
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// Read the list of group members from the LDAP server for all groups in the mapping section.
|
||||
func readLdapGroups(configuration Configuration) (groups GroupMembers) {
|
||||
conn := getLdapConnection(configuration.Ldap)
|
||||
|
|
Loading…
Reference in a new issue