Advertisement
Guest User

Untitled

a guest
Sep 6th, 2016
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.66 KB | None | 0 0
  1. public function register(Request $request)
  2. {
  3.  
  4. $username=$request->get('username');
  5. $password=$request->get('password');
  6. $email=$request->get('email');
  7. $captchaResponse=$request->get('g-recaptcha-response');
  8.  
  9. $session =$request->getSession();
  10.  
  11. $res1 = new Response();
  12. $response_data=array('status'=>0);
  13.  
  14. if($session->get('captcha')===$captchaResponse)
  15. {
  16. $en = $this->container->get('user_model');
  17.  
  18. $data=$en->register($username,$password,$email);
  19.  
  20. $res1->headers->set('Content-Type','text/json');
  21.  
  22. if($data['status']===false)
  23. {
  24. $response_data['data']="An Internal error Happened";
  25. error_log($data['data']);
  26. }
  27. else if($data['status']===-1)
  28. {
  29. $response_data['data']=$data['data'];
  30. }
  31. else
  32. {
  33. $response_data['status']=1;
  34. $response_data['data']="Please check your mail to confirm your registration.";
  35.  
  36. /*Send Email*/
  37. $message = Swift_Message::newInstance()
  38. ->setSubject('Please confirm your registration')
  39. ->setFrom('symphotest@openmailbox.org')
  40. ->setTo($email)
  41. ->setBody($this->renderView('emails/confirm.html.twig',array('token'=>$data['data'])))
  42. ->addPart(
  43. $this->renderView('emails/registration.txt.twig',array('token'=>$data['data'])),
  44. 'text/plain'
  45. );
  46. $this->get('mailer')->send($message);
  47. }
  48. }
  49. else
  50. {
  51. $response_data['data']="You have not given a correct captcha";
  52. }
  53.  
  54. $res1->setContent(json_encode($response_data));
  55.  
  56.  
  57. $session->set('captcha',uniqid());//Generate gibberish in order not to reuse the very same captcha again
  58. return $res1;
  59. }
  60.  
  61. namespace AppBundleModels;
  62.  
  63. use DoctrineORMEntityManager;
  64. use AppBundleUtilModelStatus;
  65. use AppBundleExceptionsInvalidArgumentException;
  66. use SwiftMessage;
  67.  
  68. class UserModel
  69. {
  70. /** @var EntityManager */
  71. private $em;
  72.  
  73. /** @var Swift_Mailer */
  74. private $mailer;
  75.  
  76. /** @var Twig_Environment */
  77. private $twig;
  78.  
  79. /**
  80. *
  81. * @param EntityManager $em
  82. * @param Swift_Mailer $mailer
  83. * @param Twig_Environment $twig
  84. */
  85. public function construct(EntityManager $em, Swift_Mailer $mailer,Twig_Environment $twig)
  86. {
  87. $this->em=$em;
  88. $this->$mailer=$mailer;
  89. }
  90.  
  91. /**
  92. * Performs the actions needed for Registration
  93. *
  94. * @param unknown $username
  95. * @param unknown $password
  96. * @param unknown $email
  97. * @param Swift_Message $registrationMessage
  98. *
  99. * @return ModelStatus
  100. */
  101. public function register($username,$password,$email)
  102. {
  103. $modelStatus=new ModelStatus();
  104.  
  105. try
  106. {
  107. /** @var AppBundleEntityUserRepository */
  108. $repository=$this->em->getRepository('AppBundle::Users');
  109.  
  110. $token=$repository->register($username,$password,$email);
  111.  
  112. $modelStatus->setData($token);
  113. $modelStatus->setStatus(ModelStatus::STATUS_SUCCESS);
  114.  
  115. $this->mailer->send($registrationMessage);
  116.  
  117. $message = Swift_Message::newInstance()
  118. ->setSubject('Please confirm your registration')
  119. ->setFrom('symphotest@openmailbox.org')
  120. ->setTo($email)
  121. ->setBody($this->twig->//->renderView('emails/confirm.html.twig',array('token'=>$data['data'])))
  122. ->addPart(
  123. $this->renderView('emails/registration.txt.twig',array('token'=>$data['data'])),
  124. 'text/plain'
  125. );
  126. $this->get('mailer')->send($message);
  127. }
  128. catch(InvalidArgumentException $arg)
  129. {
  130. $modelStatus->setStatus(ModelStatus::STATUS_FAILURE);
  131. $modelStatus->setMessage($arg->getMessage());
  132. }
  133. catch (Exception $e)
  134. {
  135. $modelStatus->setStatus(ModelStatus::STATUS_FAILURE);
  136. $modelStatus->setMessage($e->getMessage());
  137. }
  138.  
  139. return $modelStatus;
  140. }
  141. }
  142.  
  143. $message = Swift_Message::newInstance()
  144. ->setSubject('Please confirm your registration')
  145. ->setFrom('symphotest@openmailbox.org')
  146. ->setTo($email)
  147. ->setBody($this->renderView('emails/confirm.html.twig',array('token'=>$data['data'])))
  148. ->addPart(
  149. $this->renderView('emails/registration.txt.twig',array('token'=>$data['data'])),
  150. 'text/plain'
  151. );
  152. $this->get('mailer')->send($message);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement