different debugging
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2023-07-24 11:13:13 +10:00
parent 2521e2472a
commit 01d1e4fd4b

44
main.go
View File

@@ -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
} }