Qui a le droit ?

Exercice 4 sur 6 du chapitre 6 · 240 XP · 5 objectifs vérifiés par des tests

Notions abordées : loginUser()Tests de sécurité401 / 403Rôles et voters

La sécurité de la taverne a déjà cédé une fois (souvenez-vous des clés volées). Gorm veut maintenant des tests qui vérifient chaque règle d'accès, pour tous les rôles :

Qui En cuisine (/cuisine/nouveau-plat) Modifier un plat (/cuisine/plat/{slug}/modifier)
Visiteur non connecté redirigé vers /connexion redirigé vers /connexion
Pipin, sans rôle 403 403
Bruna, cuisinière 200 ses plats seulement (403 pour les autres)
Gorm, le patron 200 (il a les droits d'un cuisinier) tous les plats

Votre mission

Dans tests/Taverne/DroitsTest.php, préparez les employés et les plats, puis testez ce tableau.

Se connecter dans un test

Pas besoin de remplir le formulaire de connexion à chaque test : $client->loginUser($employe) ouvre directement une session à son nom. L'aide connecter($email) est déjà prête.

Tester les deux côtés

Un test de sécurité qui ne vérifie que ce qui est permis laisse passer les portes restées ouvertes. Un test qui ne vérifie que ce qui est interdit laisse passer les portes fermées par erreur. Il faut les deux.

Quatre mutants 🐛, un par règle.