src/Controller/SecurityController.php line 42

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. // use App\Entity\Siege;
  4. use App\Entity\User;
  5. use App\Form\UserRegistrationType;
  6. use App\Repository\DeliveryRepository;
  7. use App\Repository\PurchaseOrderRepository;
  8. use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
  9. use App\Entity\Commerciale;
  10. use App\Classes\ChallengeFunction;
  11. use App\Repository\FactureRepository;
  12. use App\Repository\FactureUserRepository;
  13. use App\Repository\CommercialeRepository;
  14. use App\Repository\UserRepository;
  15. use App\Repository\SiegeRepository;
  16. use App\Services\CurrentPathService;
  17. use Doctrine\ORM\EntityManagerInterface;
  18. use Symfony\Component\HttpFoundation\Response;
  19. use Symfony\Component\Routing\Annotation\Route;
  20. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  21. use Symfony\Component\HttpFoundation\Request;
  22. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  23. use Symfony\Component\Security\Http\Authentication\AuthenticationUtils;
  24. use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
  25. use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
  26. use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
  27. use Symfony\Component\Validator\Constraints\DateTime;
  28. use Symfony\Contracts\Translation\TranslatorInterface;
  29. use Symfony\Component\Security\Core\Security;
  30. use App\Entity\Product;
  31. use App\Repository\ProductRepository;
  32. class SecurityController extends AbstractController
  33. {
  34.     /**
  35.      * @Route("/login", name="app_login")
  36.      */
  37.     public function login(Request $requestAuthenticationUtils $authenticationUtilsTranslatorInterface $translatorCurrentPathService $currentPathServiceSecurity $securityUserRepository $userRepositoryTokenStorageInterface $tokenStorage): Response
  38.     {
  39.         if ($security->getUser()) {
  40.             $user $security->getUser();
  41.             if( $user instanceof User ){
  42.                 $isSuperAdmin $userRepository->isSuperAdmin($user);
  43.                 //if( $isSuperAdmin === true ){
  44.                     $request->getSession()->set("trig""");
  45.                     $dateTime = new \DateTime();
  46.                     //$hourNow = date('H:i', strtotime((date('H')+1).':'.date('i')));
  47.                     $hourNow = (new \DateTime())->add(new \DateInterval('PT1H'))->format('h:i a');
  48.                     //dd($hourNow);
  49.                     $dateArray = [
  50.                         //$translator->trans($dateTime->format('l')),
  51.                         $dateTime->format('l'),
  52.                         $dateTime->format('d'),
  53.                         //$translator->trans($dateTime->format('F')),
  54.                         $dateTime->format('F'),
  55.                         $hourNow
  56.                     ];
  57.                     return $this->redirectToRoute('app_dashboard_tracking', [], Response::HTTP_SEE_OTHER);
  58.                     
  59.                     // return $this->render('home/welcome.html.twig', [
  60.                     //     'dateArray' => $dateArray,
  61.                     //     'classes' => $currentPathService->classes()
  62.                     // ]); 
  63.                 /*}
  64.                 else{
  65.                     $token = $tokenStorage->getToken();
  66.                     if ($token) {
  67.                         $request->getSession()->set("token", $token);
  68.                         $tokenStorage->setToken(null);
  69.                     }
  70.                     return $this->render('security/trig.html.twig', [ 'erreur' => ""]);
  71.                 }*/
  72.             }
  73.         }
  74.         // else{
  75.             $erreur "";
  76.             $error null;
  77.             // if( $request->getSession()->get("erreur") ){
  78.             //     $erreur = $request->getSession()->get("erreur");
  79.             //     $request->getSession()->remove("erreur");
  80.             // }
  81.             // else{
  82.                 $error $authenticationUtils->getLastAuthenticationError();
  83.             // }
  84.             $lastUsername $authenticationUtils->getLastUsername();
  85.             return $this->render('security/login.html.twig', ['last_username' => $lastUsername'error' => $error'erreur' => $erreur]);
  86.         // }
  87.     }
  88.     /**
  89.      * @Route("/forgottenpassword", name="app_forgotten_pwd")
  90.      */
  91.     public function forgotten(Request $request): Response
  92.     {
  93.         if ($request->isMethod('POST')) {
  94.             return $this->redirectToRoute('app_send_code', [], Response::HTTP_SEE_OTHER);
  95.         }
  96.         return $this->render('security/forgot.html.twig', [
  97.             'controller_name' => 'SecurityController',
  98.         ]);
  99.     }
  100.     /**
  101.      * @Route("/sendverifcode", name="app_send_code")
  102.      */
  103.     public function sendVerification(Request $request): Response
  104.     {
  105.         if ($request->isMethod('POST')) {
  106.             return $this->redirectToRoute('app_new_pass', [], Response::HTTP_SEE_OTHER);
  107.         }
  108.         return $this->render('security/forgot-2.html.twig', [
  109.             'controller_name' => 'SecurityController',
  110.         ]);
  111.     }
  112.     /**
  113.      * @Route("/newpassword", name="app_new_pass")
  114.      */
  115.     public function newPassword(Request $request): Response
  116.     {
  117.         if ($request->isMethod('POST')) {
  118.             return $this->redirectToRoute('app_login', [], Response::HTTP_SEE_OTHER);
  119.         }
  120.         return $this->render('security/new-password.html.twig', [
  121.             'controller_name' => 'SecurityController',
  122.         ]);
  123.     }
  124.     /**
  125.      * @Route("/registertracking", name="app_register_track")
  126.      */
  127.     public function registertrack(Request $request): Response
  128.     {
  129.         /*if ($request->isMethod('POST')) {
  130.             return $this->redirectToRoute('app_login', [], Response::HTTP_SEE_OTHER);
  131.         }*/
  132.         return $this->render('security/register-tracking.html.twig', [
  133.             'controller_name' => 'SecurityController',
  134.         ]);
  135.     }
  136.     /**
  137.      * @Route("/register", name="app_register")
  138.      */
  139.     public function register(Request $request
  140.     EntityManagerInterface $em,
  141.     UserPasswordHasherInterface $hasher): Response
  142.     {
  143.         /*$user = new User();
  144.         $form = $this->createForm(UserRegistrationType::class, $user);
  145.         $form->handleRequest($request);
  146.         if ($form->isSubmitted() && $form->isValid()) {
  147.             $user->setRoles(['ROLE_OPERATOR']);
  148.             $password = $hasher->hashPassword($user, $form->get('password')->getData());
  149.             $user->setPassword($password);
  150.             $em->persist($user);
  151.             $em->flush();
  152.             
  153.             return $this->redirectToRoute('app_login', [], Response::HTTP_SEE_OTHER);
  154.         }*/
  155.         return $this->renderForm('security/register-tracking.html.twig', [
  156.             'controller_name' => 'SecurityController',
  157.         ]);
  158.     }
  159.     
  160.     
  161.     
  162.     /**
  163.      * @Route("/dashboard", name="app_dashboard")
  164.      */
  165.     public function dashboard(TranslatorInterface $translatorCurrentPathService $currentPathService): Response{
  166.         $dateTime = new \DateTime();
  167.         $hourNow = (new \DateTime())->add(new \DateInterval('PT1H'))->format('h:i a');
  168.         $dateArray = [
  169.             $dateTime->format('l'),
  170.             $dateTime->format('d'),
  171.             $dateTime->format('F'),
  172.             $hourNow
  173.         ];
  174.         return $this->render('home/dashboard.html.twig', [
  175.             'dateArray' => $dateArray,
  176.             'classes' => $currentPathService->classes()
  177.         ]);
  178.     }
  179.     /**
  180.      * @Route("/dashboard-tracking", name="app_dashboard_tracking")
  181.      */
  182.     public function dashboardTracking(Request $requestProductRepository $productRepositoryDeliveryRepository $deliveryRepositoryPurchaseOrderRepository $purchaseOrderRepositoryTranslatorInterface $translatorCurrentPathService $currentPathServiceSecurity $security): Response{
  183.         // dd($security->getUser()); die;
  184.         $dateTime = new \DateTime();
  185.         $hourNow = (new \DateTime())->add(new \DateInterval('PT1H'))->format('h:i a');
  186.         $dateArray = [
  187.             $dateTime->format('l'),
  188.             $dateTime->format('d'),
  189.             $dateTime->format('F'),
  190.             $hourNow
  191.         ];
  192.         
  193.         if($request->query->has('delivery_id')) {
  194.             $delivery $deliveryRepository->find($request->query->get('delivery_id'));
  195.             if (!is_null($delivery) && !empty($delivery)) {
  196.                 return $this->redirectToRoute('app_dashboard_tracking_searching', ["p"=>$delivery->getId(), "isDelivery"=>true], Response::HTTP_SEE_OTHER);
  197.             } else {
  198.                 $error = [
  199.                     // "no_product" => 'Product "'.$request->query->get('p').'" doesn\'t exist.'
  200.                     "no_product" => ' "'.$request->query->get('p').'" doesn\'t exist.'
  201.                 ];
  202.             }
  203.         }
  204.         $error = [];
  205.         if ($request->query->has('p') && !empty($request->query->get('p'))) {
  206.             // $product = $productRepository->findBy(["name"=>$request->query->get('p')]);
  207.             $purchaseOrder $purchaseOrderRepository->findBy(["purchaseOrderReference"=>$request->query->get('p')]);
  208.             if (!is_null($purchaseOrder) && !empty($purchaseOrder)) {
  209.                 return $this->redirectToRoute('app_dashboard_tracking_searching', ["p"=>$purchaseOrder[0]->getId()], Response::HTTP_SEE_OTHER);
  210.             } else {
  211.                 // check if the reference is for delivery
  212.                 $delivery $deliveryRepository->findBy(["reference"=>trim($request->query->get('p'))]);
  213.                 if(!is_null($delivery) && !empty($delivery)){
  214.                     return $this->redirectToRoute('app_dashboard_tracking_searching', ["p"=>$delivery[0]->getId(), "isDelivery"=>true], Response::HTTP_SEE_OTHER);
  215.                 } else {
  216.                     $error = [
  217.                         // "no_product" => 'Product "'.$request->query->get('p').'" doesn\'t exist.'
  218.                         "no_product" => 'Purchase order or delivery "'.trim($request->query->get('p')).'" doesn\'t exist.'
  219.                     ];
  220.                 }
  221.             }
  222.         }
  223.         return $this->render('home/dashboard_tracking.html.twig', [
  224.             'dateArray' => $dateArray,
  225.             'classes' => $currentPathService->classes(),
  226.             'error' => $error
  227.         ]);
  228.     }
  229.     /**
  230.      * @Route("/dashboard-tracking-guest", name="app_dashboard_tracking_guest")
  231.      */
  232.     public function dashboardTrackingGuest(Request $requestProductRepository $productRepositoryDeliveryRepository $deliveryRepositoryPurchaseOrderRepository $purchaseOrderRepositoryTranslatorInterface $translatorCurrentPathService $currentPathServiceSecurity $security): Response{
  233.         // dd($security->getUser()); die;
  234.         $dateTime = new \DateTime();
  235.         $hourNow = (new \DateTime())->add(new \DateInterval('PT1H'))->format('h:i a');
  236.         $dateArray = [
  237.             $dateTime->format('l'),
  238.             $dateTime->format('d'),
  239.             $dateTime->format('F'),
  240.             $hourNow
  241.         ];
  242.         
  243.         if($request->query->has('delivery_id')) {
  244.             $delivery $deliveryRepository->find($request->query->get('delivery_id'));
  245.             if (!is_null($delivery) && !empty($delivery)) {
  246.                 return $this->redirectToRoute('app_dashboard_tracking_searching_guest', ["p"=>$delivery->getId(), "isDelivery"=>true], Response::HTTP_SEE_OTHER);
  247.             } else {
  248.                 $error = [
  249.                     // "no_product" => 'Product "'.$request->query->get('p').'" doesn\'t exist.'
  250.                     "no_product" => ' "'.$request->query->get('p').'" doesn\'t exist.'
  251.                 ];
  252.             }
  253.         }
  254.         $error = [];
  255.         if ($request->query->has('p') && !empty($request->query->get('p'))) {
  256.             // $product = $productRepository->findBy(["name"=>$request->query->get('p')]);
  257.             $purchaseOrder $purchaseOrderRepository->findBy(["purchaseOrderReference"=>$request->query->get('p')]);
  258.             if (!is_null($purchaseOrder) && !empty($purchaseOrder)) {
  259.                 return $this->redirectToRoute('app_dashboard_tracking_searching_guest', ["p"=>$purchaseOrder[0]->getId()], Response::HTTP_SEE_OTHER);
  260.             } else {
  261.                 // check if the reference is for delivery
  262.                 $delivery $deliveryRepository->findBy(["reference"=>trim($request->query->get('p'))]);
  263.                 if(!is_null($delivery) && !empty($delivery)){
  264.                     return $this->redirectToRoute('app_dashboard_tracking_searching_guest', ["p"=>$delivery[0]->getId(), "isDelivery"=>true], Response::HTTP_SEE_OTHER);
  265.                 } else {
  266.                     $error = [
  267.                         // "no_product" => 'Product "'.$request->query->get('p').'" doesn\'t exist.'
  268.                         "no_product" => 'Purchase order or delivery "'.trim($request->query->get('p')).'" doesn\'t exist.'
  269.                     ];
  270.                 }
  271.             }
  272.         }
  273.         return $this->render('home/guest/dashboard_tracking.html.twig', [
  274.             'dateArray' => $dateArray,
  275.             'classes' => $currentPathService->classes(),
  276.             'error' => $error
  277.         ]);
  278.     }
  279.     /**
  280.      * @Route("/logout", name="app_logout")
  281.      */
  282.     public function logout(): void
  283.     {
  284.         throw new \LogicException('This method can be blank - it will be intercepted by the logout key on your firewall.');
  285.     }
  286.         /**
  287.      * @Route("/user/add", name="app_user_add")
  288.      */
  289.     /*public function addUser(
  290.         UserRepository $ur, 
  291.         SiegeRepository $sr, 
  292.         EntityManagerInterface $em,
  293.         UserPasswordHasherInterface $hasher
  294.     ){
  295.         $user = new User();
  296.         $user->setEmail("contact@teko-consulting.com");
  297.         $user->setRoles(['ROLE_SUPER_ADMIN', 'ROLE_ADMIN', 'ROLE_OPERATOR']);
  298.         $user->setFirstname("Teko");
  299.         $user->setName("Dom");
  300.         $user->setPhone("3456345667");
  301.         $siege = $sr->find(37);
  302.         $user->setSiege($siege);
  303.         $password = $hasher->hashPassword($user, 'devis_facture1234');
  304.         $user->setPassword($password);
  305.         $em->persist($user);
  306.         $em->flush();
  307.         dd('user ajouté');
  308.     }
  309.     */
  310.     
  311.     /*
  312.     public function register(Request $request, UserRepository $ur, 
  313.         EntityManagerInterface $em,
  314.         UserPasswordHasherInterface $hasher): Response{
  315.         $user = new User();
  316.         $form = $this->createForm(UserRegistrationType::class, $user);
  317.         $form->handleRequest($request);
  318.         if ($form->isSubmitted() && $form->isValid()) {
  319.             $user->setRoles(['ROLE_OPERATOR']);
  320.             $password = $hasher->hashPassword($user, $form->get('password')->getData());
  321.             $user->setPassword($password);
  322.             $em->persist($user);
  323.             $em->flush();
  324.             
  325.             return $this->redirectToRoute('app_login', [], Response::HTTP_SEE_OTHER);
  326.         }
  327.         return $this->renderForm('security/register.html.twig', [
  328.             'user' => $user,
  329.             'form' => $form,
  330.         ]);
  331.     }*/
  332. }