Merge pull request #38005 from earona/fix-get_all_nodes

fix: get_all_node respect override_whitelisted_methods hooks
This commit is contained in:
Aarol D'Souza 2026-03-16 12:43:49 +05:30 committed by GitHub
commit a3af66a6e1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -13,11 +13,15 @@ def get_all_nodes(doctype: str, label: str, parent: str, tree_method: str | None
filters.pop("cmd", None)
filters.pop("data", None)
tree_method = frappe.get_attr(tree_method)
try:
tree_method = frappe.override_whitelisted_method(tree_method)
callable_tree_method = frappe.get_attr(tree_method)
except Exception as e:
frappe.throw(_("Failed to get method for command {0} with {1}").format(tree_method, str(e)))
frappe.is_whitelisted(tree_method)
frappe.is_whitelisted(callable_tree_method)
data = tree_method(doctype, parent, **filters)
data = callable_tree_method(doctype, parent, **filters)
out = [dict(parent=label, data=data)]
filters.pop("is_root", None)
@ -25,7 +29,7 @@ def get_all_nodes(doctype: str, label: str, parent: str, tree_method: str | None
while to_check:
parent = to_check.pop()
data = tree_method(doctype, parent, is_root=False, **filters)
data = callable_tree_method(doctype, parent, is_root=False, **filters)
out.append(dict(parent=parent, data=data))
for d in data:
if d.get("expandable"):