MCPcopy Create free account
hub / github.com/Synzack/ldapper / NetNestedGroupQuery

Function NetNestedGroupQuery

Queries/QueryNestedGroup.go:10–54  ·  view source on GitHub ↗
(groupInput string, baseDN string, conn *ldap.Conn)

Source from the content-addressed store, hash-verified

8)
9
10func NetNestedGroupQuery(groupInput string, baseDN string, conn *ldap.Conn) []string {
11
12 var queryResult []string
13
14 nestedQuery := fmt.Sprintf("(memberof:1.2.840.113556.1.4.1941:=CN=%s,OU=Groups,%s)", groupInput, baseDN)
15 searchReq := Globals.LdapSearch(baseDN, nestedQuery) // Search the baseDN
16 result, err := conn.Search(searchReq) // Execute the search
17 if err != nil {
18 fmt.Printf("Query error, %s", err)
19 }
20
21 // if LdapSearch returns information
22 if len(result.Entries) > 0 {
23 for i := 1; i < len(result.Entries); i++ {
24 queryResult = append(queryResult, result.Entries[i].GetAttributeValues("sAMAccountName")[0])
25 }
26 }
27
28 //For each result, check if group
29 for i := 0; i < len(queryResult); i++ {
30 query := fmt.Sprintf("(sAMAccountName=%s)", queryResult[i]) // build the query
31 searchReq3 := Globals.LdapSearch(baseDN, query)
32
33 result3, err := conn.Search(searchReq3) // get results
34 if err != nil {
35 fmt.Printf("Query error, %s", err)
36 }
37
38 objectClass := result3.Entries[0].GetAttributeValues("objectClass")
39 isGroup := false
40
41 for i := 0; i < len(objectClass); i++ {
42 if result3.Entries[0].GetAttributeValues("objectClass")[i] == "group" {
43 isGroup = true
44 }
45 }
46 //If result is a group, append (Group) to result
47 if isGroup {
48 queryResult[i] = fmt.Sprintf("%s (Group)", queryResult[i])
49 }
50
51 }
52
53 return queryResult
54} // end NetNestedGroupQuery
55
56func ReturnNestedGroupQuery(groupInput string, baseDN string, conn *ldap.Conn) (queryResult string) {
57 var nestedGroupMembers []string = NetNestedGroupQuery(groupInput, baseDN, conn) // Get nested group members

Callers 1

ReturnNestedGroupQueryFunction · 0.85

Calls 1

LdapSearchFunction · 0.92

Tested by

no test coverage detected