From c4f416af3742b05ce6ca7627c29afaf807d7fd28 Mon Sep 17 00:00:00 2001 From: Brock H Caldwell Date: Fri, 16 May 2025 08:17:00 -0500 Subject: [PATCH] fix: logs user in after registration --- src/Twig/Components/TextInput.php | 10 ++++ .../Action/Command/RegisterUserCommand.php | 8 ++-- .../Controller/Web/LoginController.php | 31 +----------- .../Controller/Web/RegistrationController.php | 33 +++++++++++-- .../Framework/Form/RegistrationFormType.php | 1 - templates/bare.html.twig | 2 +- templates/base.html.twig | 4 +- templates/user/getting-started.html.twig | 48 ++++++++----------- 8 files changed, 65 insertions(+), 72 deletions(-) create mode 100644 src/Twig/Components/TextInput.php 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 %} - +

Torsearch

{% block body %}{% endblock %} diff --git a/templates/base.html.twig b/templates/base.html.twig index 7ec377f..077c301 100644 --- a/templates/base.html.twig +++ b/templates/base.html.twig @@ -1,5 +1,5 @@ - + {% block title %}Welcome!{% endblock %} @@ -12,7 +12,7 @@ {% block importmap %}{{ importmap('app') }}{% endblock %} {% endblock %} - +
diff --git a/templates/user/getting-started.html.twig b/templates/user/getting-started.html.twig index 96e7130..09cb806 100644 --- a/templates/user/getting-started.html.twig +++ b/templates/user/getting-started.html.twig @@ -9,6 +9,7 @@ {{ form_start(registrationForm) }} + {### Start Name ###} + {# ################### #} - - + {### Start Email ###} + {# ################### #} - + {# ################### #} {{ form_end(registrationForm) }}