diff --git a/config/sidebar.php b/config/sidebar.php index 9119b48..c160ef7 100644 --- a/config/sidebar.php +++ b/config/sidebar.php @@ -39,20 +39,29 @@ declare(strict_types=1); return [ // Section "Administration" : regroupe toutes les pages de configuration - // applicative (RBAC, users, sites, audit log). Gate implicite : si l'user - // n'a aucune des permissions item, la section se vide et disparait. - // Pour imposer un gate explicite (ex: "seuls les membres du groupe support - // voient l'administration"), ajouter ici : 'permission' => 'core.admin.access'. + // applicative (RBAC, users, sites, audit log). + // + // CONVENTION : "etre admin" = detenir au moins une permission admin-scoped. + // En pratique, le groupe `core.*` represente l'administration applicative + // (users, roles, audit_log) ; les autres permissions admin-scoped proviennent + // des modules qui exposent leur propre page d'admin dans cette section + // (ex: `sites.view`). Un user qui n'a AUCUNE de ces permissions n'a pas + // acces a l'administration. + // + // Gate implicite : tous les items de cette section declarent une `permission`. + // Sans aucune permission correspondante, tous les items sont filtres, la + // section devient vide et est automatiquement masquee par SidebarProvider + // (cf. la boucle de filtrage : section vide => `continue`). Inutile donc + // d'ajouter un gate explicite au niveau section tant que chaque item porte + // sa propre permission. + // + // Pour imposer un gate explicite supplementaire (ex: "seuls les membres du + // groupe support voient l'administration, meme s'ils ont des permissions + // individuelles"), ajouter : 'permission' => 'core.admin.access'. [ 'label' => 'sidebar.administration.section', 'icon' => 'mdi:cog-outline', 'items' => [ - [ - 'label' => 'sidebar.general.dashboard', - 'to' => '/', - 'icon' => 'mdi:view-dashboard-outline', - 'module' => 'core', - ], [ 'label' => 'sidebar.core.roles', 'to' => '/admin/roles', @@ -102,6 +111,12 @@ return [ 'label' => 'sidebar.account.section', 'icon' => 'mdi:account-circle-outline', 'items' => [ + [ + 'label' => 'sidebar.account.dashboard', + 'to' => '/', + 'icon' => 'mdi:view-dashboard-outline', + 'module' => 'core', + ], [ 'label' => 'sidebar.account.logout', 'to' => '/logout', diff --git a/frontend/i18n/locales/fr.json b/frontend/i18n/locales/fr.json index 6dbacb0..d562ed9 100644 --- a/frontend/i18n/locales/fr.json +++ b/frontend/i18n/locales/fr.json @@ -18,11 +18,9 @@ }, "account": { "section": "Mon compte", + "dashboard": "Tableau de bord", "logout": "Déconnexion" }, - "general": { - "dashboard": "Tableau de bord" - }, "commercial": { "section": "Commercial", "suppliers": "Répertoire fournisseurs"