src/Controller/SecurityController.php line 95

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\ThirdPartyRepository;
  7. use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
  8. use App\Entity\Commerciale;
  9. use App\Classes\ChallengeFunction;
  10. use App\Repository\FactureRepository;
  11. use App\Repository\FactureUserRepository;
  12. use App\Repository\CommercialeRepository;
  13. use App\Repository\UserRepository;
  14. use App\Repository\SiegeRepository;
  15. use App\Services\CurrentPathService;
  16. use Doctrine\ORM\EntityManagerInterface;
  17. use Symfony\Component\HttpFoundation\Response;
  18. use Symfony\Component\Routing\Annotation\Route;
  19. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  20. use Symfony\Component\HttpFoundation\Request;
  21. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  22. use Symfony\Component\Security\Http\Authentication\AuthenticationUtils;
  23. use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
  24. use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
  25. use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
  26. use Symfony\Component\Validator\Constraints\DateTime;
  27. use Symfony\Contracts\Translation\TranslatorInterface;
  28. use Symfony\Component\Security\Core\Security;
  29. use App\Entity\Product;
  30. use App\Repository\ProductRepository;
  31. class SecurityController extends AbstractController
  32. {
  33.     /**
  34.      * @Route("/login", name="app_login")
  35.      */
  36.     public function login(Request $requestAuthenticationUtils $authenticationUtilsTranslatorInterface $translatorCurrentPathService $currentPathServiceSecurity $securityUserRepository $userRepositoryTokenStorageInterface $tokenStorage): Response
  37.     {
  38.         if ($security->getUser()) {
  39.             $user $security->getUser();
  40.             if( $user instanceof User ){
  41.                 $isSuperAdmin $userRepository->isSuperAdmin($user);
  42.                 //if( $isSuperAdmin === true ){
  43.                     $request->getSession()->set("trig""");
  44.                     $dateTime = new \DateTime();
  45.                     //$hourNow = date('H:i', strtotime((date('H')+1).':'.date('i')));
  46.                     $hourNow = (new \DateTime())->add(new \DateInterval('PT1H'))->format('h:i a');
  47.                     //dd($hourNow);
  48.                     $dateArray = [
  49.                         //$translator->trans($dateTime->format('l')),
  50.                         $dateTime->format('l'),
  51.                         $dateTime->format('d'),
  52.                         //$translator->trans($dateTime->format('F')),
  53.                         $dateTime->format('F'),
  54.                         $hourNow
  55.                     ];
  56.                     
  57.                     return $this->render('home/welcome.html.twig', [
  58.                         'dateArray' => $dateArray,
  59.                         'classes' => $currentPathService->classes()
  60.                     ]); 
  61.                 /*}
  62.                 else{
  63.                     $token = $tokenStorage->getToken();
  64.                     if ($token) {
  65.                         $request->getSession()->set("token", $token);
  66.                         $tokenStorage->setToken(null);
  67.                     }
  68.                     return $this->render('security/trig.html.twig', [ 'erreur' => ""]);
  69.                 }*/
  70.             }
  71.         }
  72.         // else{
  73.             $erreur "";
  74.             $error null;
  75.             // if( $request->getSession()->get("erreur") ){
  76.             //     $erreur = $request->getSession()->get("erreur");
  77.             //     $request->getSession()->remove("erreur");
  78.             // }
  79.             // else{
  80.                 $error $authenticationUtils->getLastAuthenticationError();
  81.             // }
  82.             $lastUsername $authenticationUtils->getLastUsername();
  83.             return $this->render('security/login.html.twig', ['last_username' => $lastUsername'error' => $error'erreur' => $erreur]);
  84.         // }
  85.     }
  86.     /**
  87.      * @Route("/forgottenpassword", name="app_forgotten_pwd")
  88.      */
  89.     public function forgotten(Request $request): Response
  90.     {
  91.         if ($request->isMethod('POST')) {
  92.             return $this->redirectToRoute('app_send_code', [], Response::HTTP_SEE_OTHER);
  93.         }
  94.         return $this->render('security/forgot.html.twig', [
  95.             'controller_name' => 'SecurityController',
  96.         ]);
  97.     }
  98.     /**
  99.      * @Route("/sendverifcode", name="app_send_code")
  100.      */
  101.     public function sendVerification(Request $request): Response
  102.     {
  103.         if ($request->isMethod('POST')) {
  104.             return $this->redirectToRoute('app_new_pass', [], Response::HTTP_SEE_OTHER);
  105.         }
  106.         return $this->render('security/forgot-2.html.twig', [
  107.             'controller_name' => 'SecurityController',
  108.         ]);
  109.     }
  110.     /**
  111.      * @Route("/newpassword", name="app_new_pass")
  112.      */
  113.     public function newPassword(Request $request): Response
  114.     {
  115.         if ($request->isMethod('POST')) {
  116.             return $this->redirectToRoute('app_login', [], Response::HTTP_SEE_OTHER);
  117.         }
  118.         return $this->render('security/new-password.html.twig', [
  119.             'controller_name' => 'SecurityController',
  120.         ]);
  121.     }
  122.     /**
  123.      * @Route("/registertracking", name="app_register_track")
  124.      */
  125.     public function registertrack(Request $request): Response
  126.     {
  127.         /*if ($request->isMethod('POST')) {
  128.             return $this->redirectToRoute('app_login', [], Response::HTTP_SEE_OTHER);
  129.         }*/
  130.         return $this->render('security/register-tracking.html.twig', [
  131.             'controller_name' => 'SecurityController',
  132.         ]);
  133.     }
  134.     /**
  135.      * @Route("/register", name="app_register")
  136.      */
  137.     public function register(Request $request
  138.     EntityManagerInterface $em,
  139.     UserPasswordHasherInterface $hasher): Response
  140.     {
  141.         /*$user = new User();
  142.         $form = $this->createForm(UserRegistrationType::class, $user);
  143.         $form->handleRequest($request);
  144.         if ($form->isSubmitted() && $form->isValid()) {
  145.             $user->setRoles(['ROLE_OPERATOR']);
  146.             $password = $hasher->hashPassword($user, $form->get('password')->getData());
  147.             $user->setPassword($password);
  148.             $em->persist($user);
  149.             $em->flush();
  150.             
  151.             return $this->redirectToRoute('app_login', [], Response::HTTP_SEE_OTHER);
  152.         }*/
  153.         return $this->renderForm('security/register-tracking.html.twig', [
  154.             'controller_name' => 'SecurityController',
  155.         ]);
  156.     }
  157.     
  158.     
  159.     
  160.     /**
  161.      * @Route("/dashboard", name="app_dashboard")
  162.      */
  163.     public function dashboard(TranslatorInterface $translatorCurrentPathService $currentPathServiceThirdPartyRepository $thirdPartyRepository): Response{
  164.         $dateTime = new \DateTime();
  165.         $hourNow = (new \DateTime())->add(new \DateInterval('PT1H'))->format('h:i a');
  166.         $dateArray = [
  167.             $dateTime->format('l'),
  168.             $dateTime->format('d'),
  169.             $dateTime->format('F'),
  170.             $hourNow
  171.         ];
  172.         // $thirdParties = $thirdPartyRepository->findAll();
  173.         $thirdParties $thirdPartyRepository->findBy([], ['id' => 'DESC'], 10);
  174.         return $this->render('home/dashboard.html.twig', [
  175.             'dateArray' => $dateArray,
  176.             'classes' => $currentPathService->classes(),
  177.             'thirdParties' => $thirdParties
  178.         ]);
  179.     }
  180.     /**
  181.      * @Route("/dashboard-tracking", name="app_dashboard_tracking")
  182.      */
  183.     public function dashboardTracking(Request $requestProductRepository $productRepositoryTranslatorInterface $translatorCurrentPathService $currentPathService): Response{
  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.         $error = [];
  193.         if ($request->query->has('p') && !empty($request->query->get('p'))) {
  194.             $product $productRepository->findBy(["name"=>$request->query->get('p')]);
  195.             if (!is_null($product) && !empty($product)) {
  196.                 return $this->redirectToRoute('app_dashboard_tracking_searching', ["p"=>$product[0]->getId()], Response::HTTP_SEE_OTHER);
  197.             } else {
  198.                 $error = [
  199.                     "no_product" => 'Product "'.$request->query->get('p').'" doesn\'t exist.'
  200.                 ];
  201.             }
  202.         }
  203.         return $this->render('home/dashboard_tracking.html.twig', [
  204.             'dateArray' => $dateArray,
  205.             'classes' => $currentPathService->classes(),
  206.             'error' => $error
  207.         ]);
  208.     }
  209.     /**
  210.      * @Route("/logout", name="app_logout")
  211.      */
  212.     public function logout(): void
  213.     {
  214.         throw new \LogicException('This method can be blank - it will be intercepted by the logout key on your firewall.');
  215.     }
  216.         /**
  217.      * @Route("/user/add", name="app_user_add")
  218.      */
  219.     /*public function addUser(
  220.         UserRepository $ur, 
  221.         SiegeRepository $sr, 
  222.         EntityManagerInterface $em,
  223.         UserPasswordHasherInterface $hasher
  224.     ){
  225.         $user = new User();
  226.         $user->setEmail("contact@teko-consulting.com");
  227.         $user->setRoles(['ROLE_SUPER_ADMIN', 'ROLE_ADMIN', 'ROLE_OPERATOR']);
  228.         $user->setFirstname("Teko");
  229.         $user->setName("Dom");
  230.         $user->setPhone("3456345667");
  231.         $siege = $sr->find(37);
  232.         $user->setSiege($siege);
  233.         $password = $hasher->hashPassword($user, 'devis_facture1234');
  234.         $user->setPassword($password);
  235.         $em->persist($user);
  236.         $em->flush();
  237.         dd('user ajouté');
  238.     }
  239.     */
  240.     
  241.     /*
  242.     public function register(Request $request, UserRepository $ur, 
  243.         EntityManagerInterface $em,
  244.         UserPasswordHasherInterface $hasher): Response{
  245.         $user = new User();
  246.         $form = $this->createForm(UserRegistrationType::class, $user);
  247.         $form->handleRequest($request);
  248.         if ($form->isSubmitted() && $form->isValid()) {
  249.             $user->setRoles(['ROLE_OPERATOR']);
  250.             $password = $hasher->hashPassword($user, $form->get('password')->getData());
  251.             $user->setPassword($password);
  252.             $em->persist($user);
  253.             $em->flush();
  254.             
  255.             return $this->redirectToRoute('app_login', [], Response::HTTP_SEE_OTHER);
  256.         }
  257.         return $this->renderForm('security/register.html.twig', [
  258.             'user' => $user,
  259.             'form' => $form,
  260.         ]);
  261.     }*/
  262. }