add: department exclusion check for auto-approval

This commit is contained in:
ohmo
2026-07-04 16:41:55 +07:00
parent 7caea05c7e
commit de1e06cb2c
+14 -1
View File
@@ -196,7 +196,8 @@ def find_user_in_ad(requester, caller_phone=None, ticket_id=None):
manager_email = conn.entries[0].mail.value
department = user.department.value if "department" in user and user.department.value else None
return {"city": city, "company": company, "ad_path": ad_path, "manager_email": manager_email, "source": f"AD ({search_by})"}
department = user.department.value if "department" in user and user.department.value else None
return {"city": city, "company": company, "department": department, "ad_path": ad_path, "manager_email": manager_email, "source": f"AD ({search_by})"}
return {"city": city, "company": company, "department": department, "ad_path": ad_path, "manager_email": manager_email, "source": f"AD ({search_by})"}
log_to_file(f"❌ Ошибка LDAP или таймаут сети AD: {e}", ticket_id)
return None
@@ -764,6 +765,7 @@ def process_ticket_logic(req_id):
company = user_info["company"] if user_info else None
ad_path = user_info["ad_path"] if user_info else None
manager_email = user_info["manager_email"] if user_info else None
user_department = user_info["department"] if user_info else None
info_source = user_info["source"] if user_info else "Не определен"
user_department = user_info["department"] if user_info else None
@@ -891,6 +893,17 @@ def process_ticket_logic(req_id):
is_cat_ok = False
if cat_name in APPROVAL_CATEGORIES:
allowed_subcats = APPROVAL_CATEGORIES[cat_name]
# Проверка: отдел пользователя в списке исключений
is_excluded = False
if user_department and APPROVAL_EXCLUDED_DEPARTMENTS:
for dept in APPROVAL_EXCLUDED_DEPARTMENTS:
if dept.lower() in user_department.lower() or user_department.lower() in dept.lower():
is_excluded = True
t_log(f" ⚠️ Отдел '{user_department}' в списке исключений — автосогласование отменено")
break
if is_excluded:
t_log(" ⏭ Пропуск: пользователь в исключённом отделе.")
continue
if "*" in allowed_subcats or subcat_name in allowed_subcats:
is_cat_ok = True
# Проверка: отдел пользователя в списке исключений