Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Function to register new user
- * @Route("/register", name="register")
- * @param Request $request
- * @param UserPasswordEncoderInterface $passwordEncoder
- * @param \Swift_Mailer $mailer
- * @return \Symfony\Component\HttpFoundation\Response
- * @throws \Exception
- */
- public function registerAction(Request $request, UserPasswordEncoderInterface $passwordEncoder, \Swift_Mailer $mailer)
- {
- $user = new User();
- $form = $this->createForm(UserType::class, $user);
- $form->handleRequest($request);
- // registration pass
- if ($form->isSubmitted() && $form->isValid() && $this->captchaverify($request->get('g-recaptcha-response'))) {
- $entityManager = $this->getDoctrine()->getManager();
- // find and set account type for new user
- $member = $entityManager->getRepository(AccountType::class)
- ->findOneBy(array('typeName' => 'Member'));
- $user->setAccountType($member);
- // encrypt password -> assign to user
- $password = $passwordEncoder->encodePassword($user, $user->getPlainPassword());
- $user->setPassword($password);
- // assign create account date
- $user->setJoinDate(new \DateTime);
- $user->setEnable(false);
- // generate and assign link for email confirmation
- $key = $this->getToken(50);
- $confirm = new Confirm($user, $key);
- // push data
- $entityManager->persist($user);
- $entityManager->persist($confirm);
- $entityManager->flush();
- // set-up email and send it to user
- $email = 'gargulec5218@gmail.com';
- $message = (new \Swift_Message(
- 'Hello '. $user->getUsername()))
- ->setFrom($email)
- ->setTo($user->getEmail())
- ->setBody(
- $this->renderView('emails/registration.html.twig', array(
- 'confirmLink' => $this->generateUrl('registrationConfirm', array(
- 'confirmKey' => $key
- ),
- UrlGeneratorInterface::ABSOLUTE_URL)
- )),
- 'text/html'
- );
- $mailer->send($message);
- return $this->render('security/confirm.html.twig', array(
- 'confirmed' => 'no'
- ));
- }
- // bad captcha
- if($form->isSubmitted() && $form->isValid() && !$this->captchaverify($request->get('g-recaptcha-response'))){
- $this->addFlash(
- 'error',
- 'Captcha Require'
- );
- }
- // render registration page
- return $this->render('security/register.html.twig', array(
- 'form' => $form->createView()
- ));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement