diff --git a/src/Twig/Components/TextInput.php b/src/Twig/Components/TextInput.php new file mode 100644 index 0000000..35a8cc3 --- /dev/null +++ b/src/Twig/Components/TextInput.php @@ -0,0 +1,10 @@ +createForm(RegistrationFormType::class, new User()); - $form->handleRequest($request); - - if ($form->isSubmitted() && $form->isValid()) { - $this->registerUserHandler->handle(new RegisterUserCommand( - name: $form->get('name')->getData(), - email: $form->get('email')->getData(), - username: $form->get('username')->getData(), - password: $form->get('plainPassword')->getData(), - )); - - return $this->redirectToRoute('app_index'); - } - - return $this->render('user/getting-started.html.twig', [ - 'registrationForm' => $form, - ]); - } } diff --git a/src/User/Framework/Controller/Web/RegistrationController.php b/src/User/Framework/Controller/Web/RegistrationController.php index 494304a..6f4135a 100644 --- a/src/User/Framework/Controller/Web/RegistrationController.php +++ b/src/User/Framework/Controller/Web/RegistrationController.php @@ -5,14 +5,11 @@ namespace App\User\Framework\Controller\Web; use App\User\Action\Command\RegisterUserCommand; use App\User\Action\Handler\RegisterUserHandler; use App\User\Framework\Entity\User; -use App\User\Framework\Entity\UserPreference; use App\User\Framework\Form\RegistrationFormType; -use App\User\Framework\Repository\PreferencesRepository; -use Doctrine\ORM\EntityManagerInterface; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; +use Symfony\Bundle\SecurityBundle\Security; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; -use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface; use Symfony\Component\Routing\Attribute\Route; class RegistrationController extends AbstractController @@ -24,18 +21,21 @@ class RegistrationController extends AbstractController #[Route('/register', name: 'app_register')] public function register( Request $request, + Security $security, ): Response { $form = $this->createForm(RegistrationFormType::class, new User()); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { - $this->registerUserHandler->handle(new RegisterUserCommand( + $user = $this->registerUserHandler->handle(new RegisterUserCommand( name: $form->get('name')->getData(), email: $form->get('email')->getData(), username: $form->get('username')->getData(), password: $form->get('plainPassword')->getData(), )); + $security->login($user->user); + return $this->redirectToRoute('app_index'); } @@ -43,4 +43,27 @@ class RegistrationController extends AbstractController 'registrationForm' => $form, ]); } + + #[Route(path: '/getting-started', name: 'app_getting_started')] + public function gettingStarted(Request $request, Security $security): Response + { + $form = $this->createForm(RegistrationFormType::class, new User()); + $form->handleRequest($request); + + if ($form->isSubmitted() && $form->isValid()) { + $user = $this->registerUserHandler->handle(new RegisterUserCommand( + name: $form->get('name')->getData(), + email: $form->get('email')->getData(), + password: $form->get('plainPassword')->getData(), + )); + + $security->login($user->user); + + return $this->redirectToRoute('app_index'); + } + + return $this->render('user/getting-started.html.twig', [ + 'registrationForm' => $form, + ]); + } } diff --git a/src/User/Framework/Form/RegistrationFormType.php b/src/User/Framework/Form/RegistrationFormType.php index 9019a96..8ce1a34 100644 --- a/src/User/Framework/Form/RegistrationFormType.php +++ b/src/User/Framework/Form/RegistrationFormType.php @@ -16,7 +16,6 @@ class RegistrationFormType extends AbstractType { $builder ->add('email') - ->add('username') ->add('name') ->add('plainPassword', PasswordType::class, [ // instead of being set onto the object directly, diff --git a/templates/bare.html.twig b/templates/bare.html.twig index 5ce5297..d5b580c 100644 --- a/templates/bare.html.twig +++ b/templates/bare.html.twig @@ -12,7 +12,7 @@ {% block importmap %}{{ importmap('app') }}{% endblock %} {% endblock %} -
+