|
|
@@ -2,7 +2,10 @@
|
|
|
|
|
|
namespace App\Controller;
|
|
|
|
|
|
+use App\Entity\User;
|
|
|
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
|
|
+use Symfony\Component\Form\Extension\Core\Type\RepeatedType;
|
|
|
+use Symfony\Component\HttpFoundation\Request;
|
|
|
use Symfony\Component\HttpFoundation\Response;
|
|
|
use Symfony\Component\Routing\Annotation\Route;
|
|
|
use Symfony\Component\Form\Extension\Core\Type\TextType;
|
|
|
@@ -10,15 +13,16 @@ use Symfony\Component\Form\Extension\Core\Type\PasswordType;
|
|
|
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
|
|
|
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
|
|
|
use Symfony\Component\Form\Extension\Core\Type\EmailType;
|
|
|
+use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface;
|
|
|
|
|
|
class RegisterController extends AbstractController
|
|
|
{
|
|
|
/**
|
|
|
* @Route("/register", name="register")
|
|
|
*/
|
|
|
- public function index(): Response
|
|
|
+ public function index(Request $request, UserPasswordEncoderInterface $encoder): Response
|
|
|
{
|
|
|
- // $profile = new User();
|
|
|
+ $user = new User();
|
|
|
|
|
|
// Instanciation du fromBuilder
|
|
|
$formBuilder = $this->createFormBuilder(); //$profile);
|
|
|
@@ -27,15 +31,33 @@ class RegisterController extends AbstractController
|
|
|
$formBuilder
|
|
|
->add('identifiant', TextType::class)
|
|
|
->add('courriel', EmailType::class, ['required' => false])
|
|
|
- ->add('mot_de_passe', PasswordType::class)
|
|
|
- ->add('confirmer_le_mot_de_passe', PasswordType::class)
|
|
|
+ ->add('mot_de_passe', RepeatedType::class, array(
|
|
|
+ 'type' => PasswordType::class,
|
|
|
+ 'first_options' => array('label' => 'Mot de passe'),
|
|
|
+ 'second_options' => array('label' => 'Répéter le mot de passe')
|
|
|
+ ))
|
|
|
->add('description', TextareaType::class, ['required' => false])
|
|
|
->add('profil_prive', CheckboxType::class, ['required' => false])
|
|
|
- ->setAction($this->generateUrl('register'));;
|
|
|
+ ->setAction($this->generateUrl('register'));
|
|
|
|
|
|
// Génération du formulaire
|
|
|
$form = $formBuilder->getForm();
|
|
|
|
|
|
+ if ($request->getMethod() == 'POST') {
|
|
|
+ $form->handleRequest($request);
|
|
|
+ if ($form->isValid()) {
|
|
|
+ $user->setUsername($form->get("identifiant")->getData());
|
|
|
+ $encoded_passwd = $encoder->encodePassword($user, $form->get('mot_de_passe')->getData());
|
|
|
+ $user->setPassword($encoded_passwd);
|
|
|
+ $user->setIsPrivate($form->get("profil_prive")->getData());
|
|
|
+ $user->setDescription($form->get('description')->getData());
|
|
|
+ $em = $this->getDoctrine()->getManager();
|
|
|
+ $em->persist($user);
|
|
|
+ $em->flush();
|
|
|
+ return $this->redirectToRoute('index');
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
return $this->render('register/index.html.twig', [
|
|
|
'form' => $form->createView()
|
|
|
]);
|