From 00103bcb7e90a3fe600382b873a53a76b10b51be Mon Sep 17 00:00:00 2001 From: Nathan Coad Date: Mon, 24 Jul 2023 10:50:02 +1000 Subject: [PATCH] split sAMAccountName from UPN --- main.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/main.go b/main.go index 53f9b88..5a20495 100644 --- a/main.go +++ b/main.go @@ -58,13 +58,23 @@ func isFlagPassed(name string) bool { // GetGroupsOfUser returns the group for a user. // 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 + if strings.Contains(username, "@") { + s := strings.Split(username, "@") + samAccountName = s[0] + } else if strings.Contains(username, "\\") { + s := strings.Split(username, "\\") + samAccountName = s[len(s)-1] + } else { + samAccountName = username + } // Get the users DN // Search for the given username searchRequest := ldap.NewSearchRequest( baseDN, ldap.ScopeWholeSubtree, ldap.NeverDerefAliases, 0, 0, false, - fmt.Sprintf("(uid=%s)", username), + fmt.Sprintf("(uid=%s)", samAccountName), []string{"dn"}, nil, )