François 6 жил өмнө
parent
commit
8e86d3b694

+ 1 - 1
app/config/security.yml

@@ -21,7 +21,7 @@ security:
             security: false
 
         main_login:
-            pattern: ^/login$
+            pattern: ^/(login$|register)
             anonymous: true
             logout_on_user_change: true
 

+ 14 - 0
src/AppBundle/Controller/SecurityController.php

@@ -3,6 +3,7 @@
 namespace AppBundle\Controller;
 
 use AppBundle\Form\UserEditType;
+use AppBundle\Form\UserRegisterType;
 use Symfony\Bundle\FrameworkBundle\Controller\Controller;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\Routing\Annotation\Route;
@@ -105,5 +106,18 @@ class SecurityController extends Controller
         ));
     }
 
+    /**
+     * @Route("/register", name="security_register")
+     */
+    public function registerAction(Request $request)
+    {
+        $user = new User();
+        $form = $this->createForm(UserRegisterType::class, $user);
+        $form->handleRequest($request);
+        return $this->render('@App/security/register.html.twig', array(
+            'form'  => $form->createView()
+        ));
+    }
+
 
 }

+ 24 - 0
src/AppBundle/Form/UserRegisterType.php

@@ -0,0 +1,24 @@
+<?php
+
+namespace AppBundle\Form;
+
+use Symfony\Component\Form\AbstractType;
+use Symfony\Component\Form\FormBuilderInterface;
+use Symfony\Component\OptionsResolver\OptionsResolver;
+
+class UserRegisterType extends AbstractType
+{
+    /**
+     * {@inheritdoc}
+     */
+    public function buildForm(FormBuilderInterface $builder, array $options)
+    {
+        $builder
+            ->remove('roles');
+    }
+
+    public function getParent()
+    {
+        return UserType::class;
+    }
+}

+ 7 - 1
src/AppBundle/Form/UserType.php

@@ -3,6 +3,7 @@
 namespace AppBundle\Form;
 
 use Symfony\Component\Form\AbstractType;
+use Symfony\Component\Form\Extension\Core\Type\RepeatedType;
 use Symfony\Component\Form\Extension\Core\Type\TextType;
 use Symfony\Component\Form\Extension\Core\Type\EmailType;
 use Symfony\Component\Form\Extension\Core\Type\PasswordType;
@@ -20,7 +21,12 @@ class UserType extends AbstractType
     {
         $builder
             ->add('username', TextType::class)
-            ->add('password', PasswordType::class)
+            ->add('password', RepeatedType::class, array(
+                'type'          =>  PasswordType::class,
+                'first_options' =>  array('label'   => 'Mot de passe'),
+                'second_options'=>  array('label'   => 'Répéter le mot de passe'),
+                'invalid_message'   =>  'Les mots de passe ne correspondent pas'
+            ))
             ->add('prenom', TextType::class)
             ->add('nom', TextType::class)
             ->add('mail', EmailType::class)

+ 1 - 0
src/AppBundle/Resources/views/security/login.html.twig

@@ -23,5 +23,6 @@
 
         <input type="submit" value="Connexion" />
     </form>
+    <p>Pas de compte ? <a href="{{ path('security_register') }}">S'enregistrer</a></p>
 
 {% endblock %}

+ 8 - 0
src/AppBundle/Resources/views/security/register.html.twig

@@ -0,0 +1,8 @@
+{% extends "base.html.twig" %}
+
+{% block title %}S'enregistrer{%  endblock %}
+{% block titre %}S'enregistrer{%  endblock %}
+
+{% block body %}
+    {{ form(form) }}
+{% endblock %}