|
@@ -111,21 +111,36 @@ class SecurityController extends Controller
|
|
|
/**
|
|
|
* @Route("/register", name="security_register")
|
|
|
*/
|
|
|
- public function registerAction(Request $request, UserPasswordEncoderInterface $encoder)
|
|
|
+ public function registerAction(Request $request, UserPasswordEncoderInterface $encoder , \Swift_Mailer $mailer)
|
|
|
{
|
|
|
$user = new User();
|
|
|
+ $user->setActivated(false);
|
|
|
$form = $this->createForm(UserRegisterType::class, $user);
|
|
|
$form->handleRequest($request);
|
|
|
if ($form->isSubmitted() && $form->isValid())
|
|
|
{
|
|
|
- $user = $form->getData();
|
|
|
$user->setRoles(array('ROLE_USER'));
|
|
|
$encoded = $encoder->encodePassword($user, $user->getPassword());
|
|
|
$user->setPassword($encoded);
|
|
|
$em = $this->getDoctrine()->getManager();
|
|
|
$em->persist($user);
|
|
|
$em->flush();
|
|
|
- $this->addFlash('success', 'Votre compte a été créé. Vous pouvez vous identifier');
|
|
|
+
|
|
|
+ $adresse = $this->generateUrl('security_activate', array('token'=>$user->getToken()), UrlGeneratorInterface::ABSOLUTE_URL);
|
|
|
+
|
|
|
+ $swiftMessage = new \Swift_Message('Videothèque - Activation de votre compte');
|
|
|
+ $message = $swiftMessage
|
|
|
+ ->setFrom('admin@fdlibre.eu')
|
|
|
+ ->setTo($user->getMail())
|
|
|
+ ->setBody($this->render('@App/security/mail_activate.html.twig', array(
|
|
|
+ 'user' => $user,
|
|
|
+ 'lien' => $adresse
|
|
|
+ )),
|
|
|
+ 'text/plain'
|
|
|
+ );
|
|
|
+ $mailer->send($message);
|
|
|
+
|
|
|
+ $this->addFlash('success', 'Votre compte a été créé. Un mail vient d\'être envoyé pour l\'activation du compte');
|
|
|
return $this->redirectToRoute('login');
|
|
|
}
|
|
|
|
|
@@ -174,8 +189,13 @@ class SecurityController extends Controller
|
|
|
$message = $swiftMessage
|
|
|
->setFrom('admin@fdlibre.eu')
|
|
|
->setTo($user->getMail())
|
|
|
- ->setBody("Salut ".$user->getUsername().", clique sur ce lien pour renouveller ton mot de passe : ". $adresse);
|
|
|
-
|
|
|
+ //->setBody("Salut ".$user->getUsername().", clique sur ce lien pour renouveller ton mot de passe : ". $adresse);
|
|
|
+ ->setBody($this->render('@App/security/mail_tokenmdp.html.twig', array(
|
|
|
+ 'user' => $user,
|
|
|
+ 'lien' => $adresse
|
|
|
+ )),
|
|
|
+ 'text/plain'
|
|
|
+ );
|
|
|
$mailer->send($message);
|
|
|
$this->addFlash('success', "Un mail vous a été envoyé à ".$user->getUsername()." pour récupérer le mot de passe");
|
|
|
return $this->redirectToRoute('login');
|
|
@@ -231,4 +251,24 @@ class SecurityController extends Controller
|
|
|
$em->flush();
|
|
|
return $this->redirectToRoute('admin_index');
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @Route("/activate/token={token}", name="security_activate")
|
|
|
+ */
|
|
|
+ public function activateAction(Request $request, User $user = null)
|
|
|
+ {
|
|
|
+ if ($user != null)
|
|
|
+ {
|
|
|
+ if ($user->isValidToken())
|
|
|
+ {
|
|
|
+ $user->setActivated(true);
|
|
|
+ $em = $this->getDoctrine()->getManager();
|
|
|
+ $em->flush();
|
|
|
+ $this->addFlash('success', "Votre compte est activé");
|
|
|
+ return $this->redirectToRoute('login');
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $this->addFlash('warning', "Ce token n'est plus valide");
|
|
|
+ return $this->redirectToRoute('videotheque_liste');
|
|
|
+ }
|
|
|
}
|