Вложенные циклы, повторяющиеся слишком много раз в запросе - PullRequest
0 голосов
/ 27 июня 2019

Я пытаюсь написать скрипт на 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

Я хочу отключить его, чтобы он не повторялся несколько раз, но я не уверен, в чем проблема.

...