summaryrefslogtreecommitdiff
path: root/config/locales
diff options
context:
space:
mode:
authorerdgeist <erdgeist@erdgeist.org>2026-08-01 01:10:35 +0200
committererdgeist <erdgeist@erdgeist.org>2026-08-01 01:10:35 +0200
commitf6c1f0f08f031778a491465d35ac694bfcdc12b0 (patch)
tree99aec0f419b1122821124fdb7ae8bdf4bc5831db /config/locales
parentdf90138fb55f7d3652d3d69d58325d7329920f51 (diff)
Require a fresh second factor for user management
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.
Diffstat (limited to 'config/locales')
-rw-r--r--config/locales/de.yml11
-rw-r--r--config/locales/en.yml11
2 files changed, 22 insertions, 0 deletions
diff --git a/config/locales/de.yml b/config/locales/de.yml
index 04eb738e..7edffe2d 100644
--- a/config/locales/de.yml
+++ b/config/locales/de.yml
@@ -628,6 +628,8 @@ de:
628 none_to_remove: "Es existiert keine %{lang}-Übersetzung zum Entfernen." 628 none_to_remove: "Es existiert keine %{lang}-Übersetzung zum Entfernen."
629 last_translation: "Die einzige verbliebene Übersetzung kann nicht entfernt werden." 629 last_translation: "Die einzige verbliebene Übersetzung kann nicht entfernt werden."
630 removed: "%{lang}-Übersetzung aus dem Entwurf entfernt. Veröffentlichen, um das dauerhaft zu machen." 630 removed: "%{lang}-Übersetzung aus dem Entwurf entfernt. Veröffentlichen, um das dauerhaft zu machen."
631 elevation:
632 dropped: "Administrative Rechte abgelegt."
631 633
632 assets: 634 assets:
633 index: 635 index:
@@ -721,6 +723,15 @@ de:
721 title_fields: 723 title_fields:
722 falls_back: "Menu-Titel. Leere Titel werden aus deutsch übernommen" 724 falls_back: "Menu-Titel. Leere Titel werden aus deutsch übernommen"
723 725
726 elevations:
727 new:
728 title: "Administrative Rechte anfordern"
729 hint: "Für Benutzerverwaltung ist ein aktueller zweiter Faktor nötig. Die Rechte gelten dann %{minutes} Minuten."
730 code: "Aktueller Code"
731 elevate: "Rechte anfordern"
732 not_enrolled: "Für administrative Arbeiten ist ein zweiter Faktor erforderlich. Bitte zuerst einen einrichten."
733 enrol: "Zweiten Faktor einrichten"
734
724 layouts: 735 layouts:
725 application: 736 application:
726 light_mode_aria: "Zwischen dunklem und hellem Modus wechseln" 737 light_mode_aria: "Zwischen dunklem und hellem Modus wechseln"
diff --git a/config/locales/en.yml b/config/locales/en.yml
index 2f7ac72f..9a8041bf 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -587,6 +587,8 @@ en:
587 none_to_remove: "No %{lang} translation exists to remove." 587 none_to_remove: "No %{lang} translation exists to remove."
588 last_translation: "Can't remove the only remaining translation." 588 last_translation: "Can't remove the only remaining translation."
589 removed: "%{lang} translation removed from the draft. Publish to make this permanent." 589 removed: "%{lang} translation removed from the draft. Publish to make this permanent."
590 elevation:
591 dropped: "Administrative rights dropped."
590 592
591 assets: 593 assets:
592 index: 594 index:
@@ -664,6 +666,15 @@ en:
664 title: "Compare" 666 title: "Compare"
665 default_marker: "default" 667 default_marker: "default"
666 668
669 elevations:
670 new:
671 title: "Request administrative rights"
672 hint: "User management needs a current second factor. The rights then last %{minutes} minutes."
673 code: "Current code"
674 elevate: "Request rights"
675 not_enrolled: "Administrative work requires a second factor. Please set one up first."
676 enrol: "Set up a second factor"
677
667 layouts: 678 layouts:
668 application: 679 application:
669 light_mode_aria: "Switch between dark and light mode" 680 light_mode_aria: "Switch between dark and light mode"