From cfcd21d5c69ee7bef9d20ff9994fc52e34288c94 Mon Sep 17 00:00:00 2001 From: l0gesh29 Date: Tue, 29 Jul 2025 16:03:10 +0530 Subject: [PATCH] fix: include empty values in user permission (cherry picked from commit f13d98fc7c77e03761efee90b3ad15e28efb7719) --- erpnext/accounts/utils.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/erpnext/accounts/utils.py b/erpnext/accounts/utils.py index ca1108f9340..97b1bc9ab83 100644 --- a/erpnext/accounts/utils.py +++ b/erpnext/accounts/utils.py @@ -27,6 +27,7 @@ from frappe.utils import ( nowdate, ) from pypika import Order +from pypika.functions import Coalesce from pypika.terms import ExistsCriterion import erpnext @@ -2357,6 +2358,8 @@ def sync_auto_reconcile_config(auto_reconciliation_job_trigger: int = 15): def build_qb_match_conditions(doctype, user=None) -> list: match_filters = build_match_conditions(doctype, user, False) criterion = [] + apply_strict_user_permissions = frappe.get_system_settings("apply_strict_user_permissions") + if match_filters: from frappe import qb @@ -2365,6 +2368,12 @@ def build_qb_match_conditions(doctype, user=None) -> list: for filter in match_filters: for d, names in filter.items(): fieldname = d.lower().replace(" ", "_") - criterion.append(_dt[fieldname].isin(names)) + field = _dt[fieldname] + + cond = field.isin(names) + if not apply_strict_user_permissions: + cond = (Coalesce(field, "") == "") | field.isin(names) + + criterion.append(cond) return criterion