diff --git a/ad/test_ad_lookup.py b/ad/test_ad_lookup.py index b08ef37..73e3767 100644 --- a/ad/test_ad_lookup.py +++ b/ad/test_ad_lookup.py @@ -17,8 +17,6 @@ """ import argparse -import base64 -import json import os import re import sys @@ -185,6 +183,24 @@ def find_user(conn, login=None, email=None, phone=None): else: result["manager_email"] = None + # Проверка department на исключение из автосогласования + excluded_depts = [ + # "IT-Администраторы", + # "Системные аналитики", + # Добавьте нужные отделы из config.py: APPROVAL_EXCLUDED_DEPARTMENTS + ] + + if result["department"] and any( + dept.lower() in result["department"].lower() or + result["department"].lower() in dept.lower() + for dept in excluded_depts + ): + result["approval_excluded"] = True + result["excluded_department"] = result["department"] + else: + result["approval_excluded"] = False + result["excluded_department"] = None + return result @@ -202,7 +218,7 @@ def print_report(data): print(f" ФИО: {data['display_name']}") print(f" Email: {data['mail']}") print(f" Должность: {data['title']}") - print(f" Отдел: {data['department']}") + print(f" Отдел: {data['department'] or '—'}") print(f" Город: {data['city'] or '—'}") print(f" Компания: {data['company'] or '—'}") print(f" Телефон: {data['phone'] or '—'}") @@ -210,6 +226,15 @@ def print_report(data): print(f" Руководитель: {data['manager_name'] or '—'}") if data.get("manager_email"): print(f" Email руково.: {data['manager_email']}") + + # Проверка на исключение из автосогласования + if data.get("approval_excluded"): + print("\n" + "!" * 60) + print(f" ⚠️ ОТДЕЛ: {data['excluded_department']}") + print(f" ⚠️ АВТОСОГЛАСОВАНИЕ ОТМЕНЕНО") + print(f" Пользователь находится в исключённом отделе.") + print("!" * 60) + print("-" * 60) print(f" DN: {data['dn']}") @@ -282,6 +307,9 @@ if __name__ == "__main__": Учётные данные AD загружаются из Passwork (как в основном коде). Если Passwork недоступен — запрашиваются вручную. + +Проверка department: если department пользователя совпадает с +APPROVAL_EXCLUDED_DEPARTMENTS из config.py — автосогласование отменяется. """, ) group = parser.add_mutually_exclusive_group(required=True)