This commit is contained in:
44
main.go
44
main.go
@@ -58,6 +58,8 @@ func isFlagPassed(name string) bool {
|
||||
// Taken from https://github.com/jtblin/go-ldap-client/issues/13#issuecomment-456090979
|
||||
func GetGroupsOfUser(username string, baseDN string, conn *ldap.Conn) ([]string, error) {
|
||||
var samAccountName string
|
||||
groups := []string{}
|
||||
|
||||
if strings.Contains(username, "@") {
|
||||
s := strings.Split(username, "@")
|
||||
samAccountName = s[0]
|
||||
@@ -74,7 +76,7 @@ func GetGroupsOfUser(username string, baseDN string, conn *ldap.Conn) ([]string,
|
||||
baseDN,
|
||||
ldap.ScopeWholeSubtree, ldap.NeverDerefAliases, 0, 0, false,
|
||||
fmt.Sprintf("(CN=%s)", ldap.EscapeFilter(samAccountName)),
|
||||
[]string{"dn"},
|
||||
[]string{},
|
||||
nil,
|
||||
)
|
||||
|
||||
@@ -87,26 +89,30 @@ func GetGroupsOfUser(username string, baseDN string, conn *ldap.Conn) ([]string,
|
||||
return nil, fmt.Errorf("user '%s' does not exist", samAccountName)
|
||||
}
|
||||
|
||||
userdn := sr.Entries[0].DN
|
||||
fmt.Printf("userdn is '%s' from CN '%s'", userdn, samAccountName)
|
||||
sr.PrettyPrint(2)
|
||||
|
||||
searchRequest = ldap.NewSearchRequest(
|
||||
baseDN,
|
||||
ldap.ScopeWholeSubtree, ldap.NeverDerefAliases, 0, 0, false,
|
||||
fmt.Sprintf("(memberUid=%s)", userdn),
|
||||
[]string{"cn"}, // can it be something else than "cn"?
|
||||
nil,
|
||||
)
|
||||
sr, err = conn.Search(searchRequest)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
/*
|
||||
userdn := sr.Entries[0].DN
|
||||
fmt.Printf("userdn is '%s' from CN '%s'", userdn, samAccountName)
|
||||
|
||||
groups := []string{}
|
||||
for _, entry := range sr.Entries {
|
||||
fmt.Println(entry.GetAttributeValue("cn"))
|
||||
groups = append(groups, entry.GetAttributeValue("cn"))
|
||||
}
|
||||
searchRequest = ldap.NewSearchRequest(
|
||||
baseDN,
|
||||
ldap.ScopeWholeSubtree, ldap.NeverDerefAliases, 0, 0, false,
|
||||
fmt.Sprintf("(memberUid=%s)", userdn),
|
||||
[]string{"cn"}, // can it be something else than "cn"?
|
||||
nil,
|
||||
)
|
||||
sr, err = conn.Search(searchRequest)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
|
||||
for _, entry := range sr.Entries {
|
||||
fmt.Println(entry.GetAttributeValue("cn"))
|
||||
groups = append(groups, entry.GetAttributeValue("cn"))
|
||||
}
|
||||
*/
|
||||
|
||||
return groups, nil
|
||||
}
|
||||
|
Reference in New Issue
Block a user