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
@@ -31,8 +31,17 @@ const user = Astro.locals.user;
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,21 +1,26 @@
---
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
- | Titolo | Categoria | Stato | Aggiornato | |
+ | Titolo | Categoria | {isManager && Autore | }Stato | Aggiornato | |
{posts.map((p) => (
| {p.title} |
{p.category} |
+ {isManager && {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'))} |
|