Dans cette partie du TD, nous allons créer une zone sécurisée pour administrer le site.
Lecture recommandée: la documentation officielle de Symfony.com sur la sécurité
Nous allons executer deux commandes, la première va créer l'entité `User`, qui correspond à un utilisateur dans la base:
symfony console make:user
La seconde va créer un système d'authentification pour cet utilisateur:
symfony console make:auth
Observez les fichiers config/packages/security.yaml
et src/Security/AppAuthenticator.php
(dont vous
avez choisi le noms) qui ont été générés.
Enfin, utilisez:
symfony console make:registration
Pour générer la page et la vue du formulaire d'inscription. Regardez le code généré.
Créez ensuite une route dans config/routes.yaml
pour app_logout
:
app_logout:
path: /logout
Désormais, nous allons modifier notre vue pour afficher:
Pour cela, vous pouvez utiliser le chemin vers la page logout
et la variable
app.user
dans Twig qui vous donnera un accès à l'utilisateur identifié dans
l'application
Maintenant, écrivez un nouveau contrôleur, le AdminController
qui servira à
gérer les pages réservées à l'administration du site.
Vous pouvez pour cela vous inspirer du DefaultController
existant.
Utilisez ensuite l'annotation @Route("/admin/")
sur la classe AdminController
,
cette dernière est un préfixe, elle signifie que toutes les routes que vous définierai
dans ce contrôleur seront préfixées par /admin/
.
Testez que tout fonctionne bien en écrivant votre première action dans le contrôleur admin, et en essayant d'y accéder en étant identifié ou pas.