add: department exclusion check for auto-approval
This commit is contained in:
+31
-3
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user