fix: Always reset globals on cached templates (#30897)

This commit is contained in:
Ankush Menat 2025-01-28 11:29:57 +05:30 committed by GitHub
parent baf884d31f
commit 32c1220c31
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -52,6 +52,12 @@ def _get_jenv():
return super().is_safe_attribute(obj, attr, *args, **kwargs)
def get_template(self, *args, **kwargs):
# Note: jenv globals are reapplied here because we don't have true "global"/"local" separation.
# Ideally globals should never change as per Jinja design.
kwargs.update({"globals": self.globals})
return super().get_template(*args, **kwargs)
# frappe will be loaded last, so app templates will get precedence
jenv = FrappeSandboxedEnvironment(loader=get_jloader(), undefined=DebugUndefined, cache_size=32)
set_filters(jenv)
@ -61,9 +67,7 @@ def _get_jenv():
def get_template(path):
jenv = get_jenv()
# Note: jenv globals are reapplied here because we don't have true "global"/"local" separation.
# Ideally globals should never change as per Jinja design.
return jenv.get_template(path, globals=jenv.globals)
return jenv.get_template(path)
def get_email_from_template(name, args):