From 3edd7d7d5c6f94a59deb0b850c6e2c150edb9cba Mon Sep 17 00:00:00 2001 From: Alexander Moisseev Date: Mon, 27 Jul 2026 13:42:20 +0300 Subject: [PATCH] [Minor] Expose Errors history to read-only mode MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit The /errors endpoint and its WebUI table were gated behind the enable (privileged) password. Lower the privilege check so any authenticated user can view them. This is safe: the endpoint returns only Rspamd's internal operational error log (timestamp, pid, level, module, message) — no email content, PII, or secrets — and read-only users already see strictly more sensitive data in the History tab (sender/ recipient IPs, scores, symbols). Authentication remains required and the endpoint is purely informational (no mutation). --- interface/index.html | 2 +- interface/js/app/history.js | 2 -- src/controller.c | 2 +- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/interface/index.html b/interface/index.html index 01943e410d..6d5b3eb8f3 100644 --- a/interface/index.html +++ b/interface/index.html @@ -741,7 +741,7 @@ -
+
Errors diff --git a/interface/js/app/history.js b/interface/js/app/history.js index c5b90519dd..1e2e5051fb 100644 --- a/interface/js/app/history.js +++ b/interface/js/app/history.js @@ -293,8 +293,6 @@ define(["app/common", "app/libft", "app/tab-utils", "tabulator"], } ui.getErrors = function () { - if (common.read_only) return; - common.query("errors", { success: function (data) { const neighbours_data = data diff --git a/src/controller.c b/src/controller.c index 9b2081495f..8381c87acd 100644 --- a/src/controller.c +++ b/src/controller.c @@ -1767,7 +1767,7 @@ rspamd_controller_handle_errors(struct rspamd_http_connection_entry *conn_ent, ctx = session->ctx; - if (!rspamd_controller_check_password(conn_ent, session, msg, TRUE)) { + if (!rspamd_controller_check_password(conn_ent, session, msg, FALSE)) { return 0; } -- 2.47.3