From 3eda6e32e16e0a103531a097b092228fe5e45724 Mon Sep 17 00:00:00 2001 From: alaalsalam Date: Thu, 23 Jul 2026 14:54:46 +0300 Subject: [PATCH] guard legacy automation during webhook events --- whatsapp/whatsapp/log_gen.py | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/whatsapp/whatsapp/log_gen.py b/whatsapp/whatsapp/log_gen.py index 7d6a7f6..0aeeffb 100644 --- a/whatsapp/whatsapp/log_gen.py +++ b/whatsapp/whatsapp/log_gen.py @@ -6,21 +6,28 @@ from frappe.utils.pdf import get_pdf -def apply(doc, state): - """DocEvent hook used to trigger WA Automation Rule on document change.""" - +def apply(doc, state): + """DocEvent hook used to trigger WA Automation Rule on document change.""" + + session_user = getattr(getattr(frappe, "session", None), "user", None) + if not session_user or session_user == "Guest": + return + # أثناء install / migrate / patch لا تشغّل أي منطق إضافي - if getattr(frappe.flags, "in_migrate", False) or getattr( - frappe.flags, "in_patch", False - ) or getattr(frappe.flags, "in_install", False): - return - + if getattr(frappe.flags, "in_migrate", False) or getattr( + frappe.flags, "in_patch", False + ) or getattr(frappe.flags, "in_install", False): + return + + if doc.doctype in {"FC Message", "FC Conversation", "Error Log"}: + return + # لو DocType نفسه لسه ما نزل من JSON للـ DB لا تعمل شيء if not frappe.db.exists("DocType", "WA Automation Rule"): return try: - rules = frappe.get_list( + rules = frappe.get_all( "WA Automation Rule", filters={"enabled": 1, "document_type": doc.doctype}, pluck="name",