From 35ec7e799fd31264e818f97a309eaa69fba4c329 Mon Sep 17 00:00:00 2001 From: Marcel Date: Sat, 2 May 2026 18:41:09 +0200 Subject: [PATCH] feat(admin): add BLOG_WRITE to group permission checkbox UI Both /admin/groups/new and /admin/groups/[id] now expose BLOG_WRITE in the standard-permissions card so admins can grant Geschichten authoring through the UI instead of running raw SQL. Adds Paraglide labels in de/en/es. Closes Markus's review B1 on PR #382. Co-Authored-By: Claude Opus 4.7 --- frontend/messages/de.json | 1 + frontend/messages/en.json | 1 + frontend/messages/es.json | 1 + frontend/src/routes/admin/groups/[id]/+page.svelte | 3 ++- frontend/src/routes/admin/groups/new/+page.svelte | 3 ++- 5 files changed, 7 insertions(+), 2 deletions(-) diff --git a/frontend/messages/de.json b/frontend/messages/de.json index e08dbb1c..932b8f24 100644 --- a/frontend/messages/de.json +++ b/frontend/messages/de.json @@ -228,6 +228,7 @@ "admin_perm_read_all": "Nur lesen", "admin_perm_annotate_all": "Lesen & Annotieren", "admin_perm_write_all": "Lesen & Schreiben", + "admin_perm_blog_write": "Geschichten schreiben", "admin_perm_admin": "Vollzugriff (Admin)", "admin_perm_admin_user": "Benutzer verwalten", "admin_perm_admin_tag": "Schlagworte verwalten", diff --git a/frontend/messages/en.json b/frontend/messages/en.json index 3e1e691d..2bcb443d 100644 --- a/frontend/messages/en.json +++ b/frontend/messages/en.json @@ -228,6 +228,7 @@ "admin_perm_read_all": "Read only", "admin_perm_annotate_all": "Read & Annotate", "admin_perm_write_all": "Read & Write", + "admin_perm_blog_write": "Write stories", "admin_perm_admin": "Full access (Admin)", "admin_perm_admin_user": "Manage users", "admin_perm_admin_tag": "Manage tags", diff --git a/frontend/messages/es.json b/frontend/messages/es.json index a1cff1eb..1777de77 100644 --- a/frontend/messages/es.json +++ b/frontend/messages/es.json @@ -228,6 +228,7 @@ "admin_perm_read_all": "Solo lectura", "admin_perm_annotate_all": "Leer y anotar", "admin_perm_write_all": "Leer y escribir", + "admin_perm_blog_write": "Escribir historias", "admin_perm_admin": "Acceso completo (Admin)", "admin_perm_admin_user": "Gestionar usuarios", "admin_perm_admin_tag": "Gestionar etiquetas", diff --git a/frontend/src/routes/admin/groups/[id]/+page.svelte b/frontend/src/routes/admin/groups/[id]/+page.svelte index a6b8527f..9b9a3574 100644 --- a/frontend/src/routes/admin/groups/[id]/+page.svelte +++ b/frontend/src/routes/admin/groups/[id]/+page.svelte @@ -27,7 +27,8 @@ $effect(() => { const STANDARD_PERMISSIONS = $derived([ { value: 'READ_ALL', label: m.admin_perm_read_all() }, { value: 'ANNOTATE_ALL', label: m.admin_perm_annotate_all() }, - { value: 'WRITE_ALL', label: m.admin_perm_write_all() } + { value: 'WRITE_ALL', label: m.admin_perm_write_all() }, + { value: 'BLOG_WRITE', label: m.admin_perm_blog_write() } ]); const ADMIN_PERMISSIONS = $derived([ diff --git a/frontend/src/routes/admin/groups/new/+page.svelte b/frontend/src/routes/admin/groups/new/+page.svelte index 7392ec79..78d7218e 100644 --- a/frontend/src/routes/admin/groups/new/+page.svelte +++ b/frontend/src/routes/admin/groups/new/+page.svelte @@ -6,7 +6,8 @@ import { m } from '$lib/paraglide/messages.js'; const availableStandard = $derived([ { value: 'READ_ALL', label: m.admin_perm_read_all() }, { value: 'ANNOTATE_ALL', label: m.admin_perm_annotate_all() }, - { value: 'WRITE_ALL', label: m.admin_perm_write_all() } + { value: 'WRITE_ALL', label: m.admin_perm_write_all() }, + { value: 'BLOG_WRITE', label: m.admin_perm_blog_write() } ]); const availableAdmin = $derived([ { value: 'ADMIN', label: m.admin_perm_admin() },