From a9a4926e3e608b0e2ef962763ad01d30eca81fa0 Mon Sep 17 00:00:00 2001 From: dddennnisss Date: Tue, 11 Aug 2026 11:53:55 +0700 Subject: [PATCH] revert 427f6ed00014318bef1113fc0d9caf1863b134fb revert fix: lk_diagnostic.py - separate short_name for sAMAccountName and ANR --- lk/test/lk_diagnostic.py | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/lk/test/lk_diagnostic.py b/lk/test/lk_diagnostic.py index c4cfde6..cbd4f4b 100644 --- a/lk/test/lk_diagnostic.py +++ b/lk/test/lk_diagnostic.py @@ -46,12 +46,12 @@ print("=" * 60) email = "la.guseynova@sibcem.ru" search_id = email.replace("@tcs.sibcem.ru", "@sibcem.ru") -short_name = search_id.split("@")[0] # la.guseynova — без домена +short_name = search_id.split("@")[0] print(f"\n--- 0. Поиск в AD ---") print(f" Email: {email}") print(f" Search ID: {search_id}") -print(f" Short (без домена): {short_name}") +print(f" Short: {short_name}") AD_SERVER = "172.16.20.20" AD_BASE = "DC=sibcem,DC=ru" @@ -63,17 +63,10 @@ try: read_only=True ) - # Разделяем поиск: - # - mail: полный email с доменом (la.guseynova@sibcem.ru) - # - sAMAccountName: только логин без домена (la.guseynova) - # - userPrincipalName: полный UPN с доменом - # - anr: логин без домена (ANR ищет по sAMAccountName, displayName, etc.) - search_filter = f"(|(mail={search_id}*)(sAMAccountName={short_name})(userPrincipalName={search_id}*)(anr={short_name}))" + # Универсальный фильтр: mail, sAMAccountName, userPrincipalName, ANR + # ANR — Approximate Name Resolution, ищет по любому атрибуту + search_filter = f"(|(mail={search_id}*)(sAMAccountName={search_id})(userPrincipalName={search_id}*)(anr={search_id}))" print(f" LDAP-фильтр: {search_filter}") - print(f" mail: {search_id} (полный email)") - print(f" sAMAccountName: {short_name} (без домена)") - print(f" userPrincipalName: {search_id} (полный UPN)") - print(f" anr: {short_name} (без домена)") conn.search( search_base=AD_BASE, @@ -90,7 +83,6 @@ try: mobile = str(entry.mobile) if 'mobile' in entry else "" pager = str(entry.personalPager) if 'personalPager' in entry else "" - print(f"\n НАЙДЕН:") print(f" CN: {cn}") print(f" sAMAccountName: {sam}") print(f" mail: {mail}") @@ -102,7 +94,7 @@ try: print(" Не найден по расширенному фильтру. Пробую ANR отдельно...") conn.search( search_base=AD_BASE, - search_filter=f"(anr={short_name})", + search_filter=f"(anr={search_id})", attributes=["cn", "sAMAccountName", "mail", "userPrincipalName", "extensionAttribute2", "mobile", "personalPager"] ) if conn.entries: @@ -115,7 +107,6 @@ try: mobile = str(entry.mobile) if 'mobile' in entry else "" pager = str(entry.personalPager) if 'personalPager' in entry else "" - print(f"\n НАЙДЕН (ANR fallback):") print(f" CN: {cn}") print(f" sAMAccountName: {sam}") print(f" mail: {mail}")