summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2026-08-05Search assets and events, and order events by when they happenerdgeist
2026-08-04Rework the README/INSTALL documents and provide a bootstrap script (untested ;)erdgeist
2026-08-04Tidy up headings on house keeping viewserdgeist
- Collapse page headers into one action row with an optional hint - limit will_paginate to one row
2026-08-04Give node lists a flag column and a shared action barerdgeist
2026-08-04Witness every promotion and demotion made through the roles formerdgeist
2026-08-03Require elevation before editing another accounterdgeist
2026-08-03Remove pointer to wiki.github, it's deaderdgeist
2026-08-03Restore public tags path under global scopeerdgeist
2026-08-03Reroute events, tags, menuitems under /admin and reture events-without-a-page viewerdgeist
2026-08-03Share one flag stack between the account roster and the events listerdgeist
2026-08-03Render dates, booleans and counts through the locale fileserdgeist
2026-08-03Bump ruby to 3.4.10erdgeist
2026-08-03Believe the file over the browser about what was uploadederdgeist
2026-08-03Run ImageMagick under a policy that travels with the projecterdgeist
2026-08-03Update the HTML sanitizer and Rails to their security releaseserdgeist
2026-08-03Make tinymce use the admin chromes' light/dark schemeerdgeist
2026-08-03Link each account to its own entries in the logerdgeist
2026-08-03Display stale accounts in users#indexerdgeist
2026-08-03Display last login date in users#showerdgeist
2026-08-02Log user logins and reconstruct last activity from logserdgeist
2026-08-02Report changing the end time of an event in action logerdgeist
2026-08-02Let an event start without endingerdgeist
2026-08-02Witness calendar entrieserdgeist
2026-08-02Prepare the user list for stacked account flagserdgeist
2026-08-02Add #edit_grid class to translation editor so that CSS rules will matcherdgeist
2026-08-02Let pagination wraperdgeist
2026-08-02Witness account creationerdgeist
2026-08-02Give the session cookie a lifetime so it survives app switcheserdgeist
2026-08-02Pick an existing translation when none has changederdgeist
2026-08-02Test the neighbour revision pair arithmeticerdgeist
2026-08-02Say when a translation is unchanged and where to look insteaderdgeist
2026-08-02Test that aggregate? keeps the attributes the editor permitserdgeist
2026-08-02Repair unreachable and one-sided locale keyserdgeist
2026-08-02Keep the compared translation independent of the interface languageerdgeist
2026-08-02Let the sanitizer honour what the editor permitserdgeist
2026-08-02Stop reporting line-ending differences as editserdgeist
2026-08-02Keep link titles when the editor reserialiseserdgeist
2026-08-01Remove superflous experimental border rule for disclosureerdgeist
2026-08-01Fix the malformed font-size declaration in the disclosure rowerdgeist
2026-08-01Make the whole disclosure row reach its reporterdgeist
2026-08-01Add partial for disclosure realmerdgeist
2026-08-01Report validation failures without the exception preambleerdgeist
2026-08-01Derive the Atom feed timestamp from its entrieserdgeist
2026-08-01Require a second factor for elevation, not for holding adminerdgeist
2026-08-01tidy up user list, make otp flag more visibleerdgeist
2026-08-01Allow aggregate to order by slug and paint chapters list more nicelyerdgeist
2026-08-01Fix some spacing issues in user table and the wrappererdgeist
2026-08-01Let Redaktion grant and revoke its own roleerdgeist
Any holder may add or remove another account, witnessed as redaktion_grant/revoke so the vouching is legible. Not behind elevation: onboarding must not wait for a keyholder, and a compromised Redaktion account can already publish.
2026-08-01Show and extend the elevation windowerdgeist
A banner appears while elevated, counting down in minutes and carrying extend and drop controls. Three extensions of 30 minutes are allowed, so the window is at most two hours without a fresh code; a code resets the budget. The countdown is advisory, the server-side check authoritative, so it says "expired" rather than vanishing. The post-login flash tells an admin the timer has started.
2026-08-01Require a fresh second factor for user managementerdgeist
Administrative actions are gated behind a 30-minute elevation window: creating and retiring accounts, editing roles, clearing a second factor. Reading the list is not gated, and content work is untouched. elevated? is tied to is_admin?, so losing the role closes the window at once. The window opens when the second factor verifies at login, so an admin heading straight for user management is already elevated, and closes on logout with the other session state. Five wrong codes end the session, mirroring the login challenge. users#update carries no elevation filter, since self-service reaches it; the role field is gated in user_params instead and fails closed.