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é
Commencez par vous assurer de la présence du module security:
composer req security
Nous allons executer deux commandes, la première va créer l'entité `User`, qui correspond à un utilisateur dans la base:
./bin/console make:user
La seconde va créer un système d'authentification pour cet utilisateur:
./bin/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:
./bin/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.