fix(admin): retire les liens de nav vers des pages non construites (#23)
This commit is contained in:
parent
8ce1dc21de
commit
c284c840d0
2 changed files with 14 additions and 26 deletions
|
|
@ -94,7 +94,7 @@ $navClass = static function (string $code, string $current): string {
|
|||
<a href="/admin/dashboard" class="<?= $navClass('dashboard', $active) ?>">Tableau de bord</a>
|
||||
</div>
|
||||
|
||||
<?php if ($can('product.read') || $can('menu.read') || $can('category.manage')): ?>
|
||||
<?php if ($can('category.manage') || $can('product.read')): ?>
|
||||
<div class="sidebar-section">
|
||||
<div class="sidebar-section-label">Catalogue</div>
|
||||
<?php if ($can('category.manage')): ?>
|
||||
|
|
@ -103,30 +103,15 @@ $navClass = static function (string $code, string $current): string {
|
|||
<?php if ($can('product.read')): ?>
|
||||
<a href="/admin/products" class="<?= $navClass('products', $active) ?>">Produits</a>
|
||||
<?php endif; ?>
|
||||
<?php if ($can('menu.read')): ?>
|
||||
<a href="/admin/menus" class="<?= $navClass('menus', $active) ?>">Menus</a>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($can('order.read')): ?>
|
||||
<div class="sidebar-section">
|
||||
<div class="sidebar-section-label">Operations</div>
|
||||
<a href="/admin/orders" class="<?= $navClass('orders', $active) ?>">Commandes</a>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($can('user.read') || $can('role.manage')): ?>
|
||||
<div class="sidebar-section">
|
||||
<div class="sidebar-section-label">Administration</div>
|
||||
<?php if ($can('user.read')): ?>
|
||||
<a href="/admin/users" class="<?= $navClass('users', $active) ?>">Utilisateurs</a>
|
||||
<?php endif; ?>
|
||||
<?php if ($can('role.manage')): ?>
|
||||
<a href="/admin/roles" class="<?= $navClass('roles', $active) ?>">Roles</a>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<?php /*
|
||||
Items de nav volontairement absents tant que leur page n'existe pas
|
||||
(un lien vers une route non enregistree renvoie un 404). A reactiver
|
||||
avec leur route respective : Menus (menu.read), Commandes (order.read),
|
||||
Utilisateurs (user.read), Roles (role.manage) -- P3 suite / P4.
|
||||
*/ ?>
|
||||
</nav>
|
||||
|
||||
<main class="content">
|
||||
|
|
|
|||
|
|
@ -150,10 +150,13 @@ final class DashboardControllerTest extends TestCase
|
|||
// Marqueur present UNIQUEMENT dans le fragment dashboard (absent du layout) :
|
||||
// verifie que le contenu est bien compose DANS le shell (pas un $content vide).
|
||||
self::assertStringContainsString('Bienvenue, Corentin J', $body);
|
||||
// Navigation conditionnee aux permissions.
|
||||
self::assertStringContainsString('/admin/products', $body); // product.read present
|
||||
self::assertStringContainsString('/admin/users', $body); // user.read present
|
||||
self::assertStringNotContainsString('/admin/roles', $body); // role.manage absent
|
||||
// Navigation conditionnee aux permissions : un lien n'apparait que si la
|
||||
// permission est presente ET la page existe.
|
||||
self::assertStringContainsString('/admin/products', $body); // product.read present + page existante
|
||||
// user.read est present, mais la page /admin/users n'existe pas encore :
|
||||
// le lien est retire pour ne pas exposer un 404 (cf. layout.php).
|
||||
self::assertStringNotContainsString('/admin/users', $body);
|
||||
self::assertStringNotContainsString('/admin/roles', $body); // pas de page + role.manage absent
|
||||
// Deconnexion = formulaire POST avec CSRF.
|
||||
self::assertStringContainsString('action="/logout"', $body);
|
||||
self::assertStringContainsString('name="_csrf"', $body);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue