From 6dcff467d765ec77a687571060d23d4f6f9755b8 Mon Sep 17 00:00:00 2001 From: Cam Proudlock Date: Thu, 27 Aug 2026 15:12:18 -0400 Subject: [PATCH] tools.view for the Tech Tools entry --- CHANGELOG.md | 8 ++++++++ plugins/tools/plugin.py | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a57c98cf..aeba1ac2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -115,6 +115,14 @@ ADR-007 and ADR-002. ### Fixed +- **Tech Tools was invisible to anyone without an account**, even though every + tool on the page is deliberately usable without one and Secure Send is the + single write this product offers a guest. The nav item named no permission, + because the plugin had none to name, so the sidebar filter dropped it. The + plugin gained `tools.view`, and the item now names either that or + `tools.secrets` - somebody granted only Secure Send still needs the entry + that leads to it. + - **The sidebar offered pages the reader could not open, and hid ones they could.** A nav item is hidden from anybody who does not hold its permission, but only four items ever declared one - so the filter did nothing for the diff --git a/plugins/tools/plugin.py b/plugins/tools/plugin.py index ce4dc055..463a82eb 100644 --- a/plugins/tools/plugin.py +++ b/plugins/tools/plugin.py @@ -67,6 +67,11 @@ class ToolsPlugin(BasePlugin): about revoking what a role does or does not hold. """ return [ + # Reaching the tools page at all. The tools themselves run in the + # browser and touch no data, so this is about whether the entry + # appears - which is exactly the question a site answers when it + # decides whether people without an account may use them. + ('tools.view', 'Use the browser tools (codes, conversions)', 'tools'), ('tools.secrets', 'Create secure send links', 'tools'), ] @@ -135,6 +140,9 @@ class ToolsPlugin(BasePlugin): 'route': '/tools', 'position': 47, 'section': 'fleet', + # Either right reaches the page: somebody granted only Secure + # Send still needs the entry that leads to it. + 'permission': ['tools.view', 'tools.secrets'], }, ]