diff --git a/src/layouts/Admin.astro b/src/layouts/Admin.astro index d76e45e..d1631c3 100644 --- a/src/layouts/Admin.astro +++ b/src/layouts/Admin.astro @@ -1,7 +1,28 @@ --- +// Layout dell'area riservata. Usa i token e i font del sito, come il Campus e Stress Index: +// il pannello non è più un foglio di stile a sé, così chi passa dal sito all'amministrazione +// resta nello stesso mondo visivo. +import '@fontsource/montserrat/400.css'; +import '@fontsource/montserrat/500.css'; +import '@fontsource/montserrat/600.css'; +import '@fontsource/open-sans/400.css'; +import '@fontsource/open-sans/600.css'; +import '../styles/global.css'; + interface Props { title: string } const { title } = Astro.props; const user = Astro.locals.user; +const path = Astro.url.pathname; +const isManager = user?.role === 'superuser' || user?.role === 'admin'; + +// Voci del menu: ognuna compare solo a chi può davvero aprirla. +const VOCI = [ + { href: '/admin', label: 'Articoli', visibile: true, exact: true }, + { href: '/admin/content', label: 'Contenuti', visibile: isManager }, + { href: '/admin/users', label: 'Utenti', visibile: user?.role === 'admin' }, +]; +const attiva = (v: { href: string; exact?: boolean }) => + v.exact ? path === v.href : path.startsWith(v.href); --- @@ -10,41 +31,110 @@ const user = Astro.locals.user;