diff --git a/lk/test/lk_diagnostic.py b/lk/test/lk_diagnostic.py index 0414969..cbd4f4b 100644 --- a/lk/test/lk_diagnostic.py +++ b/lk/test/lk_diagnostic.py @@ -44,7 +44,6 @@ print("=" * 60) print("Диагностика сотрудника: la.guseynova@sibcem.ru") print("=" * 60) -# Ищем в AD email = "la.guseynova@sibcem.ru" search_id = email.replace("@tcs.sibcem.ru", "@sibcem.ru") short_name = search_id.split("@")[0] @@ -64,10 +63,14 @@ try: read_only=True ) - # Ищем по mail + # Универсальный фильтр: 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}") + conn.search( search_base=AD_BASE, - search_filter=f"(mail={search_id})", + search_filter=search_filter, attributes=["cn", "sAMAccountName", "mail", "userPrincipalName", "extensionAttribute2", "mobile", "personalPager"] ) if conn.entries: @@ -88,10 +91,10 @@ try: print(f" mobile: {mobile}") print(f" pager: {pager}") else: - print(" Не найден по mail. Пробую по sAMAccountName...") + print(" Не найден по расширенному фильтру. Пробую ANR отдельно...") conn.search( search_base=AD_BASE, - search_filter=f"(sAMAccountName={short_name})", + search_filter=f"(anr={search_id})", attributes=["cn", "sAMAccountName", "mail", "userPrincipalName", "extensionAttribute2", "mobile", "personalPager"] ) if conn.entries: @@ -138,12 +141,11 @@ except Exception as e: print(f" Ошибка подключения к SQL: {e}") sys.exit(0) -# Определяем card_id: из AD (extensionAttribute2) или через поиск в БД +# Определяем card_id: через поиск в БД card_id = None # Пробуем найти CARD_ID через PR_CARD + PR_EMP print(f"\n--- 2. Поиск CARD_ID в PR_CARD ---") -# Сначала ищем по short_name в PR_EMP cursor.execute( "SELECT c.ID FROM UOV_SELFSERVICE_PR_CARD c " "JOIN UOV_SELFSERVICE_PR_EMP e ON e.CARD_ID = c.ID " @@ -158,7 +160,6 @@ if rows: else: print(f" Не найден по username в PR_CARD/PR_EMP") -# Если не нашли, пробуем по email if not card_id: cursor.execute( "SELECT c.ID FROM UOV_SELFSERVICE_PR_CARD c "