Skip to content

Commit

Permalink
fix(memberships): improves user group processing logic
Browse files Browse the repository at this point in the history
closes #29
  • Loading branch information
christopherpickering committed Jan 5, 2023
1 parent 8a51f17 commit d3fd23b
Showing 1 changed file with 18 additions and 9 deletions.
27 changes: 18 additions & 9 deletions ldap.py
Expand Up @@ -131,17 +131,26 @@ def clean_value(value: str) -> str:
if "memberOf" in data:

for member_set in data["memberOf"]:
memberdict = dict([x.split("=") for x in member_set.split(",")])

memberrow = [
prefixer(get_attribute("sAMAccountName", data), ADDOMAIN + "\\"),
get_attribute("OU", memberdict),
get_attribute("CN", memberdict),
]
# one CN
cn = re.findall(r"CN=(.+?)(?=,?(?:OU|DC|CN|$))", member_set)[0]

# only save three groups
if "OU" in memberdict and memberdict["OU"] in GROUPSEARCHBASES:
memberships.append(memberrow)
# for multiple OUs
ou_list = re.findall(r"OU=(.+?)(?=,?(?:OU|DC|CN|$))", member_set)

for ou in ou_list:

memberrow = [
prefixer(
get_attribute("sAMAccountName", data), ADDOMAIN + "\\"
),
get_attribute("OU", ou),
get_attribute("CN", cn),
]

# only save three groups
if ou in GROUPSEARCHBASES:
memberships.append(memberrow)


for base in GROUPSEARCHBASES:
Expand Down

0 comments on commit d3fd23b

Please sign in to comment.