add: department exclusion check for auto-approval

This commit is contained in:
ohmo
2026-07-04 16:10:25 +07:00
parent 6add9d813e
commit f8258173fb
+31 -3
View File
@@ -17,8 +17,6 @@
""" """
import argparse import argparse
import base64
import json
import os import os
import re import re
import sys import sys
@@ -185,6 +183,24 @@ def find_user(conn, login=None, email=None, phone=None):
else: else:
result["manager_email"] = None 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 return result
@@ -202,7 +218,7 @@ def print_report(data):
print(f" ФИО: {data['display_name']}") print(f" ФИО: {data['display_name']}")
print(f" Email: {data['mail']}") print(f" Email: {data['mail']}")
print(f" Должность: {data['title']}") print(f" Должность: {data['title']}")
print(f" Отдел: {data['department']}") print(f" Отдел: {data['department'] or ''}")
print(f" Город: {data['city'] or ''}") print(f" Город: {data['city'] or ''}")
print(f" Компания: {data['company'] or ''}") print(f" Компания: {data['company'] or ''}")
print(f" Телефон: {data['phone'] or ''}") print(f" Телефон: {data['phone'] or ''}")
@@ -210,6 +226,15 @@ def print_report(data):
print(f" Руководитель: {data['manager_name'] or ''}") print(f" Руководитель: {data['manager_name'] or ''}")
if data.get("manager_email"): if data.get("manager_email"):
print(f" Email руково.: {data['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("-" * 60)
print(f" DN: {data['dn']}") print(f" DN: {data['dn']}")
@@ -282,6 +307,9 @@ if __name__ == "__main__":
Учётные данные AD загружаются из Passwork (как в основном коде). Учётные данные AD загружаются из Passwork (как в основном коде).
Если Passwork недоступен — запрашиваются вручную. Если Passwork недоступен — запрашиваются вручную.
Проверка department: если department пользователя совпадает с
APPROVAL_EXCLUDED_DEPARTMENTS из config.py — автосогласование отменяется.
""", """,
) )
group = parser.add_mutually_exclusive_group(required=True) group = parser.add_mutually_exclusive_group(required=True)