diff --git a/frappe/tests/test_safe_exec.py b/frappe/tests/test_safe_exec.py index fcd5832680..1e370a1160 100644 --- a/frappe/tests/test_safe_exec.py +++ b/frappe/tests/test_safe_exec.py @@ -75,3 +75,6 @@ class TestSafeExec(FrappeTestCase): def test_unsafe_objects(self): unsafe_global = {"frappe": frappe} self.assertRaises(SyntaxError, safe_exec, """frappe.msgprint("Hello")""", unsafe_global) + + def test_frappe_dict_in_jinja(self): + frappe.render_template("{% set my_dict = _dict() %} {{- my_dict.works -}}", {}) diff --git a/frappe/utils/safe_exec.py b/frappe/utils/safe_exec.py index 890f16a1c3..a362664aad 100644 --- a/frappe/utils/safe_exec.py +++ b/frappe/utils/safe_exec.py @@ -105,6 +105,7 @@ def get_safe_globals(): json=NamespaceDict(loads=json.loads, dumps=json.dumps), as_json=frappe.as_json, dict=dict, + _dict=frappe._dict, # this isn't usable with RestrictedPython, but kept for Jinja compatibility log=frappe.log, args=form_dict, frappe=NamespaceDict(