Advertisement
Guest User

Untitled

a guest
Feb 25th, 2018
307
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.26 KB | None | 0 0
  1. <?php
  2.  
  3. namespace AppBundle\Controller;
  4.  
  5.  
  6. use AppBundle\Entity\User;
  7. use AppBundle\Form\UserType;
  8. use Swift_Mailer;
  9. use Symfony\Bundle\FrameworkBundle\Controller\Controller;
  10. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
  11. use Symfony\Component\HttpFoundation\Request;
  12. use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface;
  13.  
  14. class RegisterController extends Controller
  15. {
  16.     /**
  17.      * @Route("/register", name="register")
  18.      */
  19.     public function registerAction(Request $request, UserPasswordEncoderInterface $passwordEncoder, Swift_Mailer $mailer)
  20.     {
  21.         $user = new User();
  22.  
  23.         $form = $this->createForm(UserType::class, $user);
  24.  
  25.         $form->handleRequest($request);
  26.  
  27.         if ($form->isSubmitted() && $form->isValid()) {
  28.  
  29.             $password = $passwordEncoder->encodePassword($user, $user->getPassword());
  30.             $user->setPassword($password);
  31.             $user->setIsActive(false);
  32.             $em = $this->getDoctrine()->getManager();
  33.             $em->persist($user);
  34.             $em->flush();
  35.  
  36.             $message = (new \Swift_Message('Link aktywacyjny'))
  37.                 ->setFrom('noreply@gmail.com')
  38.                 ->setTo($user->getEmail())
  39.                 ->setBody(
  40.                     $this->renderView(
  41.                         '@App/Register/activation.html.twig',
  42.                         array('name' => $user->getEmail())
  43.                     ),
  44.                     'text/html'
  45.                 );
  46.  
  47.             $mailer->send($message);
  48.  
  49.  
  50.             return $this->redirectToRoute('login');
  51.         }
  52.  
  53.         return $this->render('@App/Register/register.html.twig', array(
  54.             'form' => $form->createView(),
  55.         ));
  56.     }
  57.  
  58.     /**
  59.      * @Route("/activate/{slug}", name="activate_show")
  60.      */
  61.     public function activateAction($slug)
  62.     {
  63.         $em = $this->getDoctrine()->getManager();
  64.         $user = $em->getRepository('AppBundle:User')->findOneBy(array('email' => $slug));
  65.  
  66.         if (!$user) {
  67.             throw $this->createNotFoundException(
  68.                 'No user found for e-mail ' . $slug
  69.             );
  70.         }
  71.  
  72.         $user->setIsActive(true);
  73.         $em->flush();
  74.  
  75.         return $this->redirectToRoute('login');
  76.     }
  77.  
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement