src/Controller/SecurityController.php line 31

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\User;
  4. use App\Entity\UserData;
  5. use App\EntityManager\UserManager;
  6. use App\Form\User\RegisterType;
  7. use App\Notifications\User\UserMailer;
  8. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
  9. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  10. use Symfony\Component\HttpFoundation\Request;
  11. use Symfony\Component\Routing\Annotation\Route;
  12. use Symfony\Component\Security\Http\Authentication\AuthenticationUtils;
  13. class SecurityController extends AbstractController
  14. {
  15.     protected $userManager;
  16.     protected $userMailer;
  17.     public function __construct(UserManager $userManagerUserMailer $userMailer)
  18.     {
  19.         $this->userManager $userManager;
  20.         $this->userMailer $userMailer;
  21.     }
  22.     /**
  23.      * @Route("/login", name="security_login")
  24.      * @Template()
  25.      */
  26.     public function login(AuthenticationUtils $helper): array
  27.     {
  28.         return [
  29.             'last_username' => $helper->getLastUsername(),
  30.             'error'         => $helper->getLastAuthenticationError(),
  31.         ];
  32.     }
  33.     /**
  34.      * @Route("/logout", name="security_logout")
  35.      */
  36.     public function logout(): void
  37.     {
  38.         throw new \Exception('This should never be reached!');
  39.     }
  40.     /**
  41.      * @Route("/creer_un_compte", name="security_register")
  42.      * @Template()
  43.      */
  44.     public function register(Request $request)
  45.     {
  46.         $user = new User();
  47.         $form $this->createForm(RegisterType::class, $user);
  48.         $form->handleRequest($request);
  49.         
  50.         if ($form->isSubmitted()) {
  51.             if ($form->isValid()) {
  52.                 $userData = new UserData();
  53.                 $userData->setGender($form->get('gender')->getData());
  54.                 $userData->setBirthdate($form->get('birthdate')->getData());
  55.                 $userData->setCountry($form->get('country')->getData());
  56.                 $userData->setCity($form->get('city')->getData());
  57.                 $userData->setProvince($form->get('province')->getData());
  58.                 $user->setStatus(User::STATUS_ACTIVE);
  59.                 $user->setUserData($userData);
  60.                 $this->userManager->update($user);
  61.                 // send email
  62.                 $this->userMailer->register($user);
  63.                 $this->get('session')->getFlashBag()->set('success''user.register');
  64.                 return $this->redirectToRoute('_home');
  65.             }
  66.         }
  67.         return [
  68.             'form' => $form->createView(),
  69.         ];
  70.     }
  71. }