src/Controller/AuthenticationController.php line 29

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  4. use Symfony\Component\HttpFoundation\Response;
  5. use Symfony\Component\HttpFoundation\Request;
  6. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  7. use Symfony\Component\Routing\Annotation\Route;
  8. use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
  9. use Doctrine\ORM\EntityManagerInterface;
  10. use Symfony\Component\Mailer\MailerInterface;
  11. use App\Fonctions\Fonctions;
  12. use Symfony\Component\Mime\Email;
  13. use Symfony\Bridge\Twig\Mime\TemplatedEmail;
  14. use App\Repository\TempsVerifRepository;
  15. use App\Entity\TempsVerif;
  16. use Symfony\Component\Mime\Address;
  17. use Symfony\Component\Mailer\Exception\TransportExceptionInterface;
  18. use Symfony\Component\Security\Http\Authentication\AuthenticationUtils;
  19. class AuthenticationController extends AbstractController
  20. {
  21.     public function __construct(SessionInterface $session,Fonctions $fonct,EntityManagerInterface $em)
  22.       {
  23.         $this->session $session;
  24.         $this->em $em;
  25.         $this->fonct $fonct;
  26.       }
  27.     #[Route(path'/'name'app_login')]
  28.     public function login(AuthenticationUtils $authenticationUtils): Response
  29.     {
  30.         if ($this->getUser()) {
  31.             return $this->redirectToRoute('app_home');
  32.         }
  33.         // get the login error if there is one
  34.         $error $authenticationUtils->getLastAuthenticationError();
  35.         // last username entered by the user
  36.         $lastUsername $authenticationUtils->getLastUsername();
  37.         return $this->render('security/login.html.twig', ['last_username' => $lastUsername'error' => $error]);
  38.     }
  39.      #[Route('/verification/compte'name'verification_compte')]
  40.     public function verification_compte(MailerInterface $mailer,Request $request,UserPasswordHasherInterface $passwordHasher,EntityManagerInterface $manger,TempsVerifRepository $TempsVerifRepository): Response
  41.     {
  42.         $this->denyAccessUnlessGranted('IS_AUTHENTICATED_FULLY');
  43.         $recup_temp $TempsVerifRepository->findOneBy(['id'=>1]);
  44.              $tempVerif=$recup_temp->getTemps();
  45.             
  46.         if ($request->request->count()>0){
  47.             $code_1=$request->request->get('code_1');
  48.             $code_2=$request->request->get('code_2');
  49.             $code_3=$request->request->get('code_3');
  50.             $code_4=$request->request->get('code_4');
  51.             $code_5=$request->request->get('code_5');
  52.             $code_6=$request->request->get('code_6');
  53.             $code=$code_1.$code_2.$code_3.$code_4.$code_5.$code_6;
  54.             $user=$this->getUser();
  55.             $code_verfier=$this->session->get('code_verif');
  56.             $date=$this->session->get('date');     
  57.              $DateNow = new \DateTime('now');
  58.              $int $DateNow->diff($date);
  59.              $TempsRestant=($int->24 60) + ($int->60) + $int->i;
  60.              
  61.             if ($TempsRestant<=$tempVerif) {
  62.                 if( password_verify($code$code_verfier)) {
  63.                 $this->session->set('code_verif','');
  64.                 $this->session->set('active_fonction',1);
  65.                 $user=$this->getUser();
  66.                 $action="verification Compte utilisateur";
  67.                 $statut="Success";
  68.                 $msg="Verification effectuée avec succés ";
  69.                 $entity="User";
  70.                 $identity="";
  71.                 $old_v="";
  72.                 $new_v="";
  73.                 $log=$this->fonct->log($user,$action,$statut,$msg,$entity,$identity,$old_v,$new_v);
  74.                 $this->em->persist($log);
  75.                 $this->em->flush();
  76.                 return $this->redirectToRoute('app_home');
  77.                 }else{
  78.                     $user=$this->getUser();
  79.                     $action="verification Compte utilisateur";
  80.                     $statut="Echouée";
  81.                     $msg="Erreur, code de verification incorrect ";
  82.                     $entity="User";
  83.                     $identity="";
  84.                     $old_v="";
  85.                     $new_v="";
  86.                     $log=$this->fonct->log($user,$action,$statut,$msg,$entity,$identity,$old_v,$new_v);
  87.                     $this->em->persist($log);
  88.                     $this->em->flush();
  89.                     return $this->render('security/verification_compte.html.twig', [
  90.                         'controller_name' => 'AccueilController',
  91.                         'temps'=>$tempVerif,
  92.                         'error' => 'Erreur, code de verification incorrect ',
  93.                         ]);
  94.                 }
  95.                 // code...
  96.             }else{
  97.                 $user=$this->getUser();
  98.                 $action="verification Compte utilisateur";
  99.                 $statut="Echouée";
  100.                 $msg="Erreur, code de verification a expiré, veuillez vous connectez a nouveau merci ";
  101.                 $entity="User";
  102.                 $identity="";
  103.                 $old_v="";
  104.                 $new_v="";
  105.                 $log=$this->fonct->log($user,$action,$statut,$msg,$entity,$identity,$old_v,$new_v);
  106.                 $this->em->persist($log);
  107.                 $this->em->flush();
  108.                  return $this->render('security/verification_compte.html.twig', [
  109.                         'controller_name' => 'expire',
  110.                         'temps'=>$tempVerif,
  111.                         'error' => 'Erreur, code de verification a expiré, veuillez vous connectez a nouveau merci ',
  112.                         ]);
  113.             }
  114.    
  115.         }
  116.         
  117.          return $this->render('security/verification_compte.html.twig', [
  118.                     'controller_name' => 'AccueilController',
  119.                     'temps'=>$tempVerif,
  120.                     'error' => '',
  121.                     ]);
  122.     }
  123.     #[Route(path'/logout'name'app_logout')]
  124.     public function logout(): void
  125.     {
  126.         throw new \LogicException('This method can be blank - it will be intercepted by the logout key on your firewall.');
  127.     }
  128.     #[Route(path'/first_logout'name'first_logout')]
  129.     public function first_logout()
  130.     {
  131.         $this->denyAccessUnlessGranted('IS_AUTHENTICATED_FULLY');
  132.          return $this->render('security/statut.html.twig', [
  133.                     'controller_name' => 'AccueilController',
  134.                     'error' => '',
  135.                     ]);
  136.     }
  137.      #[Route(path'/access_denied'name'access_denied')]
  138.     public function access_denied()
  139.     {
  140.         $this->denyAccessUnlessGranted('IS_AUTHENTICATED_FULLY');
  141.             $user=$this->getUser();
  142.             $action="Acces page";
  143.             $statut="Echouée";
  144.             $msg="access denied sur cette page";
  145.             $entity="User";
  146.             $identity="";
  147.             $old_v="";
  148.             $new_v="";
  149.             $log=$this->fonct->log($user,$action,$statut,$msg,$entity,$identity,$old_v,$new_v);
  150.             $this->em->persist($log);
  151.             $this->em->flush();
  152.             $this->addFlash('access_denied',"Vous n'avez acces sur cette page, veuillez contacter votre superviseur");
  153.          return $this->render('security/access_denied.html.twig', [
  154.                     'controller_name' => 'AccueilController',
  155.                     'error' => '',
  156.                     ]);
  157.     }
  158.      ////////////////sakina////////////
  159.      #[Route('/temps_verif'name'temps_verif')]
  160.     public function temps_verif(Request $request,TempsVerifRepository $TempsVerifRepositoryEntityManagerInterface $em)
  161.     {
  162.         $this->denyAccessUnlessGranted('IS_AUTHENTICATED_FULLY');
  163.         $this->session->set('select'3);
  164.         $this->session->set('Sousselect',77);
  165.          $recup_temp $TempsVerifRepository->findOneBy(['id'=>1]);
  166.          // dd($recup_temp->getTemps());
  167.          
  168.            
  169.         return $this->render('security/temps_verif_code.html.twig', [
  170.                     'recup_temp' => $recup_temp,
  171.             ]);
  172.     }
  173.     #[Route('/modif_temps'name'app_modif_temps'methods: ['GET','POST'])]
  174.     public function modif_temps(Request $requestEntityManagerInterface $em,TempsVerifRepository $TempsVerifRepository): Response
  175.     {
  176.         if ($request->request->count()>0) {
  177.           
  178.         // dd('ok');
  179.             $temps $request->request->get('temps');
  180.             $id $request->request->get('id');
  181.        
  182.             $list_temp=$TempsVerifRepository->findOneBy(['id'=>$id]);
  183.                 $list_temp->setTemps($temps);
  184.                 $em->persist($list_temp);
  185.                 $user=$this->getUser();
  186.                 $action="Modification temps restant de verification code";
  187.                 $statut="Success";
  188.                 $msg="Opération réussi avec susccée";
  189.                 $entity="User";
  190.                 $identity="";
  191.                 $old_v="";
  192.                 $new_v="";
  193.                 $log=$this->fonct->log($user,$action,$statut,$msg,$entity,$identity,$old_v,$new_v);
  194.                 $this->em->persist($log);
  195.                 $this->em->flush();
  196.                 // code...
  197.            
  198.             $this->addFlash('success'"Modification éffectuée avec succés");
  199.             return $this->redirectToRoute('temps_verif');
  200.         }
  201.     }
  202.     //////////////////endsakina///////////////////////
  203. }