fix: include empty values in user permission

(cherry picked from commit f13d98fc7c)
This commit is contained in:
l0gesh29
2025-07-29 16:03:10 +05:30
committed by Mergify
parent 5c34299b1e
commit cfcd21d5c6

View File

@@ -27,6 +27,7 @@ from frappe.utils import (
nowdate, nowdate,
) )
from pypika import Order from pypika import Order
from pypika.functions import Coalesce
from pypika.terms import ExistsCriterion from pypika.terms import ExistsCriterion
import erpnext 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: def build_qb_match_conditions(doctype, user=None) -> list:
match_filters = build_match_conditions(doctype, user, False) match_filters = build_match_conditions(doctype, user, False)
criterion = [] criterion = []
apply_strict_user_permissions = frappe.get_system_settings("apply_strict_user_permissions")
if match_filters: if match_filters:
from frappe import qb from frappe import qb
@@ -2365,6 +2368,12 @@ def build_qb_match_conditions(doctype, user=None) -> list:
for filter in match_filters: for filter in match_filters:
for d, names in filter.items(): for d, names in filter.items():
fieldname = d.lower().replace(" ", "_") 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 return criterion