From ee1da0ffb8a05cba6fa2df9cdd12696e1d644334 Mon Sep 17 00:00:00 2001
From: Cam Proudlock
Date: Fri, 21 Aug 2026 16:02:52 -0400
Subject: [PATCH] Tech Tools reachable without a login
---
plugins/tools/frontend/routes.js | 18 +++++++----
.../tools/frontend/views/SecureSendCreate.vue | 32 +++++++++++++++++--
2 files changed, 41 insertions(+), 9 deletions(-)
diff --git a/plugins/tools/frontend/routes.js b/plugins/tools/frontend/routes.js
index 3af4a1c0..f306aa24 100644
--- a/plugins/tools/frontend/routes.js
+++ b/plugins/tools/frontend/routes.js
@@ -15,22 +15,28 @@ export default [
path: 'tools',
name: 'tools',
component: () => import('./views/ToolsIndex.vue'),
- meta: { requiresAuth: true, plugin: 'tools' }
+ // NO requiresAuth. Every tool here is usable without an account: the label
+ // generator runs entirely in the browser, and secure send decides for
+ // itself (a site can let guests create, and receiving never needs a login).
+ // Gating the index turned a public tool into one nobody could reach.
+ meta: { plugin: 'tools' }
},
{
path: 'tools/codes',
name: 'tools-codes',
component: () => import('./views/CodeGenerator.vue'),
- meta: { requiresAuth: true, plugin: 'tools' }
+ // Browser-only: no API, no data, nothing to protect.
+ meta: { plugin: 'tools' }
},
{
path: 'tools/secure-send',
name: 'tools-secure-send',
component: () => import('./views/SecureSendCreate.vue'),
- // Creating a secret needs a login AND tools.secrets. The route guard covers
- // the login; the server enforces the permission, and the page surfaces its
- // refusal rather than pretending the form worked.
- meta: { requiresAuth: true, plugin: 'tools' }
+ // Reachable by anyone; the SERVER decides who may actually create. A signed
+ // in user needs tools.secrets, and a guest needs the site to have turned on
+ // securesend_allow_guests. The page reads that setting so a guest who
+ // cannot create is told so, instead of being handed a form that 401s.
+ meta: { plugin: 'tools' }
},
]
diff --git a/plugins/tools/frontend/views/SecureSendCreate.vue b/plugins/tools/frontend/views/SecureSendCreate.vue
index 7bef0d91..a679db72 100644
--- a/plugins/tools/frontend/views/SecureSendCreate.vue
+++ b/plugins/tools/frontend/views/SecureSendCreate.vue
@@ -17,13 +17,25 @@
+
+
+
Signing in is needed to create a secret link at this site.
+
+ Receiving one never needs an account - if somebody sent you a link, open
+ that instead.
+
+ Sign in
+
+
This browser cannot encrypt in page (Web Crypto is unavailable, which
usually means the site is not being served over HTTPS). Secure send needs
it, because the whole point is that the server never sees your text.