Я пытаюсь написать скрипт на python, который запрашивает LDAP о членстве пользователя. Затем я хочу проверить эти членства по фиксированному списку групп, чтобы определить, есть ли у моего пользователя членство в этих группах.
Это код, который у меня есть:
user_identifier = "JohnSmith123"
group_names = ["Faker1", "Faker2", "MML User"]
# establish AD query
q = pyad.adquery.ADQuery()
q.execute_query(
attributes=["memberOf"],
where_clause=f"cn = '{user_identifier}'",
base_dn="DC=company_name, DC=com"
)
for row in q.get_results():
results = row.get("memberOf")
groups = str(results).split(',')
for group in group_names:
for item in groups:
# strip leading characters from item
if "CN=" in item:
formatted_group = item[5:]
if group != formatted_group:
print(f"{user_identifier} is not a member of {group}")
else:
print(f"{user_identifier} is a member of {group}")
Это работает, за исключением того факта, что мой цикл зацикливается слишком много раз. Вместо этого вывода:
JohnSmith123 is not a member of Faker1
JohnSmith123 is not a member of Faker2
JohnSmith123 is a member of MML User
Я получаю этот вывод:
JohnSmith123 is not a member of Faker1
JohnSmith123 is not a member of Faker2
JohnSmith123 is not a member of MML User
JohnSmith123 is not a member of Faker1
JohnSmith123 is not a member of Faker2
JohnSmith123 is not a member of MML User
JohnSmith123 is not a member of Faker1
JohnSmith123 is not a member of Faker2
JohnSmith123 is a member of MML User
Я хочу отключить его, чтобы он не повторялся несколько раз, но я не уверен, в чем проблема.