fix: respect system setting for tracebacks
closes https://github.com/frappe/frappe/issues/19826
This commit is contained in:
parent
19f962975a
commit
3f142c1dce
3 changed files with 11 additions and 5 deletions
|
|
@ -284,6 +284,8 @@ def handle_exception(e):
|
|||
or (frappe.local.request.path.startswith("/api/") and not accept_header.startswith("text"))
|
||||
)
|
||||
|
||||
allow_traceback = frappe.get_system_settings("allow_error_traceback") if frappe.db else False
|
||||
|
||||
if not frappe.session.user:
|
||||
# If session creation fails then user won't be unset. This causes a lot of code that
|
||||
# assumes presence of this to fail. Session creation fails => guest or expired login
|
||||
|
|
@ -338,7 +340,7 @@ def handle_exception(e):
|
|||
else:
|
||||
traceback = "<pre>" + sanitize_html(frappe.get_traceback()) + "</pre>"
|
||||
# disable traceback in production if flag is set
|
||||
if frappe.local.flags.disable_traceback and not frappe.local.dev_server:
|
||||
if frappe.local.flags.disable_traceback or not allow_traceback and not frappe.local.dev_server:
|
||||
traceback = ""
|
||||
|
||||
frappe.respond_as_web_page(
|
||||
|
|
|
|||
|
|
@ -29,9 +29,7 @@ if TYPE_CHECKING:
|
|||
|
||||
def report_error(status_code):
|
||||
"""Build error. Show traceback in developer mode"""
|
||||
allow_traceback = (
|
||||
cint(frappe.db.get_system_setting("allow_error_traceback")) if frappe.db else True
|
||||
)
|
||||
allow_traceback = frappe.get_system_settings("allow_error_traceback") if frappe.db else False
|
||||
if (
|
||||
allow_traceback
|
||||
and (status_code != 404 or frappe.conf.logging)
|
||||
|
|
|
|||
|
|
@ -10,7 +10,13 @@ def get_context(context):
|
|||
if frappe.flags.in_migrate:
|
||||
return
|
||||
|
||||
allow_traceback = frappe.get_system_settings("allow_error_traceback") if frappe.db else False
|
||||
|
||||
context.error_title = context.error_title or _("Uncaught Server Exception")
|
||||
context.error_message = context.error_message or _("There was an error building this page")
|
||||
|
||||
return {"error": frappe.get_traceback().replace("<", "<").replace(">", ">")}
|
||||
return {
|
||||
"error": frappe.get_traceback().replace("<", "<").replace(">", ">")
|
||||
if allow_traceback
|
||||
else ""
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue