# Review package: 22d72be..2bf6b3d ## Commits 2bf6b3d feat(admin): nav per 3 ruoli, blog filtrato per autore + colonna autore ## Files changed src/layouts/Admin.astro | 13 +++++++++++-- src/pages/admin/index.astro | 11 ++++++++--- 2 files changed, 19 insertions(+), 5 deletions(-) ## Diff diff --git a/src/layouts/Admin.astro b/src/layouts/Admin.astro index e61622f..ab98680 100644 --- a/src/layouts/Admin.astro +++ b/src/layouts/Admin.astro @@ -24,17 +24,26 @@ const user = Astro.locals.user; .pill--draft { background: #f3d9a4; } .form-msg { font-size: .9rem; margin-top: 8px; } .form-msg--ok { color: #3c7a3c; } .form-msg--err { color: #b03030; }
InsanityLab · Admin - {user && user.role === 'editor' && <>{`Ciao, ${user.username}`} Contenuti Esci} - {user && user.role !== 'editor' && <>{`Ciao, ${user.username}`} Articoli Contenuti Nuovo Esci Vedi sito ↗} + {user && ( + <> + {`Ciao, ${user.username}`} + Articoli + {(user.role === 'superuser' || user.role === 'admin') && Contenuti} + {user.role === 'admin' && Utenti} + Nuovo + Esci + Vedi sito ↗ + + )}
diff --git a/src/pages/admin/index.astro b/src/pages/admin/index.astro index a8e0cd3..24cb0ca 100644 --- a/src/pages/admin/index.astro +++ b/src/pages/admin/index.astro @@ -1,28 +1,33 @@ --- import Admin from '../../layouts/Admin.astro'; import { getDb } from '../../lib/db'; -import { listAllPosts } from '../../lib/posts'; +import { listAllPosts, listByAuthor } from '../../lib/posts'; +import { listUsers } from '../../lib/auth'; export const prerender = false; -const posts = listAllPosts(getDb()); +const user = Astro.locals.user!; +const isManager = user.role === 'superuser' || user.role === 'admin'; +const posts = isManager ? listAllPosts(getDb()) : listByAuthor(getDb(), user.id); +const nameById = new Map(listUsers(getDb()).map((u) => [u.id, u.username])); const fmt = new Intl.DateTimeFormat('it-IT', { dateStyle: 'short', timeStyle: 'short' }); ---

Articoli

+ Nuovo articolo

- + {isManager && } {posts.map((p) => ( + {isManager && } ))}
TitoloCategoriaStatoAggiornato
TitoloCategoriaAutoreStatoAggiornato
{p.title} {p.category}{p.author_id ? (nameById.get(p.author_id) ?? 'Staff InsanityLab') : 'Staff InsanityLab'}{p.draft ? 'Bozza' : 'Pubblicato'} {fmt.format(new Date(p.updated_at.replace(' ', 'T') + 'Z'))}
{posts.length === 0 &&

Nessun articolo: creane uno nuovo.

}