[ae_toc_shortcode tag=“SymfonyTodoApp“ /]
Wir möchten das Erstellen, Bearbeiten und Löschen von TodoItems nur erlauben, wenn ein User Rechte dafür hat.
Symfony bietet dafür eine Security Komponente, die das Registrieren und den Login von Usern vereinfacht und den Zugriff auf bestimmte Routen einschränken kann.
composer require security

Wir erstellen eine User Entity und Repository:
php bin/console make:user User

Wir erstellen eine neue Migration-Datei, damit die Tabelle User in der Datenbank erstellt werden kann.
php bin/console make:migration

Jetzt aktualisieren wir unsere Datenbank mit der User-Tabelle mit:
php bin/console doctrine:migrations:migrate


Jetzt können wir die Registrierungsform zum Registrieren von Usern erstellen:
php bin/console make:registration-form

Anschließend registrieren wir einen User über das neue Registrierungs-Formular:

Der neue User ist in der Tabelle User in TablePlus sichtbar:


Das Formular zum Einloggen sieht wie folgt aus:

Nach erfolgreichem Login leiten wir zu der Route mit dem Namen „app_todos.index“ weiter.

In der „security.yaml“ Konfigurationsdatei im config-Verzeichnis können wir neben der Weiterleitung beim Logout auch den Zugriff auf Routen für bestimmte User-Rollen beschränken (unter dem Eintrag „access_control“).

