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
|
// Taken from https://github.com/jtblin/go-ldap-client/issues/13#issuecomment-456090979
|
||||||
func GetGroupsOfUser(username string, baseDN string, conn *ldap.Conn) ([]string, error) {
|
func GetGroupsOfUser(username string, baseDN string, conn *ldap.Conn) ([]string, error) {
|
||||||
var samAccountName string
|
var samAccountName string
|
||||||
|
groups := []string{}
|
||||||
|
|
||||||
if strings.Contains(username, "@") {
|
if strings.Contains(username, "@") {
|
||||||
s := strings.Split(username, "@")
|
s := strings.Split(username, "@")
|
||||||
samAccountName = s[0]
|
samAccountName = s[0]
|
||||||
@@ -74,7 +76,7 @@ func GetGroupsOfUser(username string, baseDN string, conn *ldap.Conn) ([]string,
|
|||||||
baseDN,
|
baseDN,
|
||||||
ldap.ScopeWholeSubtree, ldap.NeverDerefAliases, 0, 0, false,
|
ldap.ScopeWholeSubtree, ldap.NeverDerefAliases, 0, 0, false,
|
||||||
fmt.Sprintf("(CN=%s)", ldap.EscapeFilter(samAccountName)),
|
fmt.Sprintf("(CN=%s)", ldap.EscapeFilter(samAccountName)),
|
||||||
[]string{"dn"},
|
[]string{},
|
||||||
nil,
|
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)
|
return nil, fmt.Errorf("user '%s' does not exist", samAccountName)
|
||||||
}
|
}
|
||||||
|
|
||||||
userdn := sr.Entries[0].DN
|
sr.PrettyPrint(2)
|
||||||
fmt.Printf("userdn is '%s' from CN '%s'", userdn, samAccountName)
|
|
||||||
|
|
||||||
searchRequest = ldap.NewSearchRequest(
|
/*
|
||||||
baseDN,
|
userdn := sr.Entries[0].DN
|
||||||
ldap.ScopeWholeSubtree, ldap.NeverDerefAliases, 0, 0, false,
|
fmt.Printf("userdn is '%s' from CN '%s'", userdn, samAccountName)
|
||||||
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
|
|
||||||
}
|
|
||||||
|
|
||||||
groups := []string{}
|
searchRequest = ldap.NewSearchRequest(
|
||||||
for _, entry := range sr.Entries {
|
baseDN,
|
||||||
fmt.Println(entry.GetAttributeValue("cn"))
|
ldap.ScopeWholeSubtree, ldap.NeverDerefAliases, 0, 0, false,
|
||||||
groups = append(groups, entry.GetAttributeValue("cn"))
|
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
|
return groups, nil
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user