src/Controller/RegistrationController.php line 22

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use FOS\UserBundle\Controller\RegistrationController as BaseController;
  4. use Symfony\Component\HttpFoundation\Request;
  5. use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
  6. use Symfony\Component\Routing\Annotation\Route;
  7. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  8. use App\Controller\MaintenanceController;
  9. use FOS\UserBundle\Form\Factory\FactoryInterface;
  10. use Symfony\Component\EventDispatcher\EventDispatcherInterface;
  11. use FOS\UserBundle\Model\UserManagerInterface;
  12. use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
  13. use Doctrine\ORM\EntityManagerInterface;
  14. use App\Service\UserService;
  15. use App\Entity\User;
  16. use App\Entity\CartCoupon;
  17. class RegistrationController extends BaseController {
  18.     public function __construct(EventDispatcherInterface $eventDispatcherFactoryInterface $formFactoryUserManagerInterface $userManagerTokenStorageInterface $tokenStorageSessionInterface $sessionEntityManagerInterface $emUserService $user)
  19.     {
  20.         $this->eventDispatcher $eventDispatcher;
  21.         $this->formFactory     $formFactory;
  22.         $this->userManager     $userManager;
  23.         $this->tokenStorage    $tokenStorage;
  24.         $this->session         $session;
  25.         $this->em              $em;
  26.         $this->userServ        $user;
  27.         parent::__construct($eventDispatcher$formFactory$userManager$tokenStorage);
  28.     }
  29.     /**
  30.      * @Route(
  31.      *      "/register",
  32.      *  )
  33.      *
  34.      */
  35.     public function registerAction(Request $request)
  36.     {
  37.       try {
  38.         if (isset($_GET["i"])) {
  39.           $i=$_GET["i"];
  40.           if ($i == "0da96206511c3297fc9dfe3ee6602bbd") {
  41.             $this->session->set("is_quebecor_invite""yes");
  42.           }
  43.         }
  44.       } catch (\Exception $e) {
  45.         // not important, ignore
  46.       }
  47.       try {
  48.           return parent::registerAction($request);
  49.       } catch (NotFoundHttpException $e) {
  50.           return $this->redirectToRoute('fos_user_security_login');
  51.       }
  52.     }
  53.     /**
  54.      * @Route(
  55.      *      "/register/confirm/{token}",
  56.      *  )
  57.      *
  58.      */
  59.     public function confirmAction(Request $request,$token){
  60.         try {
  61.           $is_quebecor_invite $this->session->get("is_quebecor_invite");
  62.           if ($is_quebecor_invite == "yes") {
  63.             $user $this->em->getRepository(User::class)->findOneBy(["confirmationToken"=>$token]);
  64.             if ($user) {
  65.               $email $user->getEmail();
  66.               $email_domain explode("@",$email);
  67.               if (isset($email_domain[1])) {
  68.                 $email_domain strtolower(trim($email_domain[1]));
  69.                 $accepted_domains = [
  70.                   '1secmail.com',
  71.                   'owasp.org',
  72.                   'quebecormedia.com',
  73.                   'agenceqmi.ca',
  74.                   'ceceditions.com',
  75.                   'fibrenoir.ca',
  76.                   'gestev.com',
  77.                   'tva.ca',
  78.                   'musicor.quebecor.com',
  79.                   'select.quebecor.com',
  80.                   'quebecor.com',
  81.                   'qmisales.ca',
  82.                   'remparts.ca',
  83.                   'sette.com',
  84.                   'sogides.com',
  85.                   'groupehomme.com',
  86.                   'messageries-adp.com',
  87.                   'videotron.com',
  88.                   'mels-studios.com',
  89.                   'lessuperclub.com',
  90.                 ];
  91.                 if (in_array($email_domain$accepted_domains)) {
  92.                   /*
  93.                   create 10$ + 5$ coupon
  94.                   */
  95.                   $coupon_code_10 substr('C-'.md5(uniqid()), 012);
  96.                   $coupon = new CartCoupon();
  97.                   $coupon->setOneTimeOnly(false);
  98.                   $coupon->setType(2);
  99.                   $coupon->setAmount(10);
  100.                   $coupon->setCode($coupon_code_10);
  101.                   $coupon->setForUser($user);
  102.                   $coupon->setDateFrom(new \DateTime());
  103.                   $coupon->setDateTo(new \DateTime("+1 year"));
  104.                   $this->em->persist($coupon);
  105.                   $this->em->flush();
  106.                   $coupon_code_5 substr('C-'.md5(uniqid()), 012);
  107.                   $coupon = new CartCoupon();
  108.                   $coupon->setOneTimeOnly(false);
  109.                   $coupon->setType(2);
  110.                   $coupon->setAmount(5);
  111.                   $coupon->setCode($coupon_code_5);
  112.                   $coupon->setForUser($user);
  113.                   $coupon->setDateFrom(new \DateTime());
  114.                   $coupon->setDateTo(new \DateTime("+1 year"));
  115.                   $this->em->persist($coupon);
  116.                   $this->em->flush();
  117.                   $email_body $this->get('twig')->render('emails/welcomeQuebecor.html.twig', array(
  118.                     'coupon_code_10' => $coupon_code_10,
  119.                     'coupon_code_5' => $coupon_code_5,
  120.                   ));
  121.                   $this->userServ->sendEmail('Vos coupons rabais de Maturin!'$email_bodyfalse$email);
  122.                 }
  123.               }
  124.             }
  125.           }
  126.           // dd($response);
  127.         } catch (\Exception $e) {
  128.           // not important, ignore
  129.           // dd($e->getMessage());
  130.         }
  131.         try {
  132.             return parent::confirmAction($request$token);
  133.         } catch (NotFoundHttpException $e) {
  134.             return $this->redirectToRoute('fos_user_security_login');
  135.         }
  136.     }
  137.      /**
  138.      * @Route(
  139.      *      "/login/coupon/marketing",
  140.      *  )
  141.      *
  142.      */
  143.     public function loginAction(Request $request)
  144.     {
  145.       try {
  146.         if (isset($_GET["c"])) {
  147.           //dd("here");
  148.           $coupon=$_GET["c"];
  149.           if ($coupon) {
  150.             $this->session->set("coupon_marketing"$coupon);
  151.           }
  152.         }
  153.       } catch (\Exception $e) {
  154.         // not important, ignore
  155.       }
  156.       return $this->redirectToRoute('fos_user_security_login');
  157.     }
  158. }