src/Controller/UtilisateurController.php line 103

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Service\GlobalAdmin;
  4. use App\Service\AdministrateurService;
  5. use App\Entity\Utilisateur;
  6. use App\Entity\ConnexionAdministrateurs ;
  7. use App\Form\UtilisateurType;
  8. use App\Repository\AdministrateursRepository;
  9. use App\Repository\NiveauRepository;
  10. use App\Repository\EtatRepository;
  11. use App\Repository\ConfigSmtpRepository;
  12. use App\Repository\ConnexionAdministrateursRepository;
  13. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  14. use Symfony\Component\HttpFoundation\Request;
  15. use Symfony\Component\HttpFoundation\Response;
  16. use Symfony\Component\Routing\Annotation\Route;
  17. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  18. use Symfony\Component\DependencyInjection\ContainerInterface as Container;
  19. use Doctrine\ORM\EntityManagerInterface;
  20. use Karser\Recaptcha3Bundle\Validator\Constraints\Recaptcha3Validator;
  21. class UtilisateurController extends AbstractController
  22. {
  23.     public function __construct(SessionInterface $session Container $container EntityManagerInterface $em )
  24.     {
  25.         
  26.         $this->em $em ;
  27.         $this->session $session ;
  28.     }
  29.     function genererCode($length){
  30.         
  31.         $chars '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
  32.         $string '';
  33.         for($i=0$i<$length$i++){
  34.             $string .= $chars[rand(0strlen($chars)-1)];
  35.         }
  36.             
  37.         return $string;
  38.             
  39.     }
  40.     private function getAdressIp(){
  41.         $ip_expediteur '' ;
  42.             
  43.         if(!empty($_SERVER['HTTP_CLIENT_IP'])){
  44.           $ip_expediteur $_SERVER['HTTP_CLIENT_IP'];
  45.         }elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
  46.           $ip_expediteur $_SERVER['HTTP_X_FORWARDED_FOR'];
  47.         }else{
  48.           $ip_expediteur $_SERVER['REMOTE_ADDR'];
  49.         }
  50.         return $ip_expediteur ;
  51.     }
  52.     public function generate_mdp($chars
  53.     {
  54.     $data '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcefghijklmnopqrstuvwxyz';
  55.     return substr(str_shuffle($data), 0$chars);
  56.     }
  57.     public function setSaltMdp($mdp)
  58.     {
  59.         
  60.         $salt1 ='kgH94zHr927J3zjT4VvC' ;
  61.         $salt2 'jA9q52MuFj4u2DxQ9m5X' ;
  62.         
  63.         return sha1($salt1.$mdp.$salt2) ;
  64.         
  65.     }
  66.     
  67.     
  68.  
  69.     /**
  70.      * @Route("/", name="connexion", methods={"GET","POST"} , options={"expose"=true})
  71.      */
  72.     public function connexion(): Response
  73.     {
  74.         return $this->render('utilisateur/connexion.html.twig');
  75.     }
  76.      /**
  77.      * @Route("/deconnexion", name="deconnexion", methods={"GET","POST"})
  78.      */
  79.     public function deconnexion(): Response
  80.     {
  81.         
  82.         $this->session->set('susrD3p9LjjY86''');
  83.         $this->session->set('supAdT9m2XJzn4','');
  84.         return $this->redirectToRoute('connexion');
  85.         
  86.         
  87.     }
  88.     /**
  89.      * @Route("/login_user", name="login_user", methods={"GET","POST"}, options= {"expose"="true"})
  90.      */
  91.     public function login_user(Request $request AdministrateursRepository $AdministrateursRepository GlobalAdmin $globalAdmin Recaptcha3Validator $recaptcha3Validator ): Response
  92.     {
  93.                 $user $request->get('login');
  94.                 $mdp $request->get('pass');
  95.                 $code_resp '';
  96.                 //dd($this->session->get('susrD3p9LjjY86'));
  97.                 $code_resp $globalAdmin->verifCnx($user $mdp $request $AdministrateursRepository) ;
  98.                        //dd($code_resp);
  99.                         if($code_resp == "1" ){//Connexion réussie .
  100.                             
  101.                             return new Response('OK');
  102.                             
  103.                         }
  104.                         else if($code_resp == "double_verif" ){//Connexion réussie .
  105.                             
  106.                             return new Response('double_verif') ;
  107.                         }
  108.                         $resp $globalAdmin->getMessage($code_resp) ;
  109.                         return new Response($resp);    
  110.         
  111.     }
  112.     /**
  113.      * @Route("/verif_cnx", name="verif_cnx", methods={"GET","POST"}, options= {"expose"="true"})
  114.      */
  115.     public function verif_cnx(Request $request AdministrateursRepository $AdministrateursRepository GlobalAdmin $globalAdmin Recaptcha3Validator $recaptcha3Validator ): Response
  116.     {
  117.                 $user $request->get('login');
  118.                 $mdp $request->get('pass');
  119.                 $code_resp '';
  120.                 //dd($this->session->get('susrD3p9LjjY86'));
  121.                 if($this->session->get('susrD3p9LjjY86') == 'gA64ya3G5N'){
  122.                     
  123.                         $code_resp $globalAdmin->verifCnx($user $mdp $request $AdministrateursRepository) ;
  124.                         //echo($code_resp);
  125.                      
  126.                         if($code_resp == "1" ){//Connexion réussie .
  127.                             $this->session->set('supAdT9m2XJzn4',['nom'=> 'Admin' 'prenom'=>'Super' ,'email'=>$request->get('login') , 'id'=>'T9m2XJzn4' ]) ;
  128.                             return new Response('OK');
  129.                         }
  130.                         else if($code_resp == "double_verif" ){//Connexion réussie .
  131.                             
  132.                             return new Response('double_verif') ;
  133.                         }
  134.                         $resp $globalAdmin->getMessage($code_resp) ;
  135.                         return new Response($resp);
  136.                     
  137.                    
  138.                 }
  139.                 else{
  140.                     $code_resp $globalAdmin->verifCnx($user $mdp $request $AdministrateursRepository) ;
  141.                 
  142.                     if($code_resp == "1" ){//Connexion réussie .
  143.                         $admin $AdministrateursRepository->findOneBy(['email'=>$user]);
  144.                         if($admin)
  145.                         {
  146.                             $this->session->set('supAdT9m2XJzn4',['nom'=> $admin->getNom() , 'prenom'=>$admin->getPrenom() ,'email'=>$admin->getEmail(), 'id'=>'T9m2XJzn4' ]) ;
  147.                             return new Response('OK');
  148.                         }
  149.                         else{
  150.                             return new Response('KO');
  151.                         }
  152.                     }
  153.                     else if($code_resp == "double_verif" ){//Connexion réussie .
  154.                         
  155.                         return new Response('double_verif') ;
  156.                     }
  157.                     $resp $globalAdmin->getMessage($code_resp) ;
  158.                 return new Response($resp);
  159.                   
  160.                 
  161.                 }
  162.                 
  163.                 
  164.                 
  165.                 
  166.            
  167.         
  168.         
  169.         
  170.         
  171.     }
  172.      /**
  173.      * @Route("/verif_cnx1", name="verif_cnx1", methods={"GET","POST"}, options= {"expose"="true"})
  174.      */
  175.     public function verif_cnx1(Request $request AdministrateursRepository $AdministrateursRepository AdministrateurService $globalAdmin Recaptcha3Validator $recaptcha3Validator ): Response
  176.     {
  177.                 $user $request->get('login');
  178.                 $mdp $request->get('pass');
  179.                 //dd($user , $mdp);
  180.                 $code_resp '';
  181.                 if($this->session->get('susrD3p9LjjY86') == 'gA64ya3G5N'){
  182.                         $admin $AdministrateursRepository->findOneBy(['email'=>$user]);
  183.                         if(!$admin){
  184.                             return new Response('Mot de passe ou email incorrecte');
  185.                         }
  186.                         //dd($admin);
  187.                  
  188.                         $code_resp $globalAdmin->verifCnx($user $mdp $request $admin) ;
  189.                         //dd($code_resp);
  190.                         if($code_resp == "1" ){//Connexion réussie .
  191.                            
  192.                             $this->session->set('supAdT9m2XJzn4',['nom'=> $admin->getNom() , 'prenom'=>$admin->getPrenom() ,'email'=>$admin->getEmail(), 'id'=>'T9m2XJzn4''userId' => $admin->getId() ]) ;
  193.                             return new Response('OK');
  194.                         }
  195.                         else if($code_resp == ){//Connexion réussie .
  196.                             
  197.                             return new Response('double_verif') ;
  198.                         }
  199.                         $resp $globalAdmin->getMessage($code_resp) ;
  200.                         return new Response($resp);
  201.                 }
  202.                 
  203.     }
  204.     
  205.     /**
  206.      * @Route("/confirm_connexion", name="confirm_connexion", methods={"GET","POST"}, options= {"expose"="true"})
  207.      */
  208.     public function confirm_connexion(Request $requestEtatRepository $EtatRepository AdministrateursRepository $AdministrateursRepository GlobalAdmin $globalAdmin ConfigSmtpRepository $ConfigSmtpRepository ConnexionAdministrateursRepository $ConnexionAdministrateursRepository): Response
  209.     {
  210.         if(null != $request->get('email_confirm') ){
  211.             
  212.             $msg'';
  213.             $emails $ConfigSmtpRepository->findOneBy([],['id'=>'desc']) ;
  214.             $email_arr = [];
  215.             foreach($emails->getDestinataires() as $email){
  216.                 $email_arr[] = $email ;
  217.             }
  218.             foreach($emails->getDestinatairesTransaction() as $email){
  219.                 $email_arr[] = $email ;
  220.             }
  221.             $email_decoupe explode('@',$request->get('email_confirm'))[1] ;
  222.                 if( ( !in_array($request->get('email_confirm'),$email_arr) ) && ($email_decoupe!="synexta.fr") && ($email_decoupe!="synexta-solutions.fr") ){
  223.                     return new Response('KOO') ;
  224.                 }
  225.                 $etat $EtatRepository->findOneBy(['id'=>2]) ;
  226.                 
  227.                
  228.                 $token $this->genererCode(20) ;
  229.                 $adminstrateur $AdministrateursRepository->findOneBy(['email'=>$request->get('email_confirm') ]);
  230.                //verif si j'ai des connexion non actif
  231.                $existance_inactif_cnx $ConnexionAdministrateursRepository->findBy(['email'=>$request->get('email_confirm'),'etat' => 2]) ;
  232.                if ($existance_inactif_cnx) {
  233.                 
  234.                     foreach ($existance_inactif_cnx as $connexion) {
  235.                         $this->em->remove($connexion);
  236.                     }
  237.                     $this->em->flush();
  238.                 }
  239.             
  240.                 //Ajout connexion
  241.                 $ConnexionAdministrateurs = new ConnexionAdministrateurs() ;
  242.             
  243.                 $ConnexionAdministrateurs->setAdresseIp($this->getAdressIp() ) ;
  244.                 $ConnexionAdministrateurs->setDateConnexion\DateTime::createFromFormat('Y-m-d H:i:s',  date('Y-m-d H:i:s' ) ) );
  245.                 $ConnexionAdministrateurs->setToken$token ) ;
  246.                 $ConnexionAdministrateurs->setEmail($request->get('email_confirm') ) ;
  247.                 $ConnexionAdministrateurs->setEtat($etat) ;
  248.                 $ConnexionAdministrateurs->setAdministrateurs($adminstrateur ) ;
  249.                 $this->em->persist($ConnexionAdministrateurs) ;
  250.                 $this->em->flush() ;
  251.                 //nettoyage list des connexions pour gardé que les 3 derniers
  252.                 $existance_cnx $ConnexionAdministrateursRepository->findBy(['email'=>$request->get('email_confirm')],['date_connexion' => 'DESC']) ;
  253.                  if (count($existance_cnx) > 3) {
  254.                     $connexionsToDelete array_slice($existance_cnx3);
  255.                 
  256.                     foreach ($connexionsToDelete as $connexion) {
  257.                         $this->em->remove($connexion);
  258.                     }
  259.                     $this->em->flush();
  260.                 }
  261.                 
  262.                     $transport = (new \Swift_SmtpTransport($emails->getHost() , $emails->getPort() , $emails->getTypeConnexion()  ))
  263.                     ->setUsername($emails->getUser())
  264.                     ->setPassword($emails->getMdp())
  265.                     ;
  266.                     $mailer = new \Swift_Mailer($transport);
  267.                     $sender $emails->getUser() ;
  268.                     $message = (new \Swift_Message('Confirmation de connexion sur Dashboard mitih')) ;
  269.                     
  270.                     $token sha1($token.$ConnexionAdministrateurs->getId().$ConnexionAdministrateurs->getAdresseIp()) ;
  271.                     $message->setFrom($sender)
  272.                     ->setTo$request->get('email_confirm') )
  273.                     ->setBody(
  274.                         $this->renderView(
  275.                             // templates/emails/registration.txt.twig
  276.                             'emails/confirmation_connexion.html.twig',[
  277.                                 'token'=>$token,
  278.                                 
  279.                             ]
  280.                         ), 'text/html'
  281.                     );
  282.                     try{
  283.                         
  284.                         $mailer->send($message);
  285.                         $msg 'OK' ;
  286.                         
  287.                     }
  288.                     catch (\Swift_TransportException $e) {   
  289.                         
  290.                         $msg $e->getMessage() ;
  291.                     }
  292.                     return new Response($msg);
  293.                 
  294.         }
  295.         return $this->render('utilisateur/confirm_connexion.html.twig');
  296.     }
  297.     
  298.     /**
  299.      * @Route("/confirm_access/{token}", name="confirm_access", methods={"GET","POST"}, options= {"expose"="true"})
  300.      */
  301.     public function confirm_access(Request $requestEtatRepository $EtatRepositoryConnexionAdministrateursRepository $ConnexionAdministrateursRepositoryAdministrateursRepository $AdministrateursRepositoryGlobalAdmin $globalAdminConfigSmtpRepository $ConfigSmtpRepository): Response
  302. {
  303.     $connexion $this->em->createQuery(
  304.         'SELECT u
  305.         FROM App\Entity\ConnexionAdministrateurs u
  306.         WHERE sha1(concat(u.token, u.id, u.adresse_ip)) = :token'
  307.     )
  308.     ->setParameter('token'$request->get('token'))
  309.     ->getOneOrNullResult();
  310.     $status='';
  311.     if ($connexion === null) {
  312.         $msg 'Problème de récupération de session.';
  313.         $status='KOO';
  314.     } else {
  315.         $now = new \DateTime();
  316.         $interval $now->diff($connexion->getDateConnexion());
  317.         // Vérifie si la différence est supérieure à 4 heures
  318.         if ($interval->>= || $interval->days 0) {
  319.             // Supprime la connexion si elle a expiré
  320.             $this->em->remove($connexion);
  321.             $this->em->flush();
  322.             $msg 'Lien expiré. Veuillez vous reconnecter.';
  323.             $status='KOO';
  324.         } else {
  325.             $etat $EtatRepository->findOneBy(['id' => 1]);
  326.             $connexion->setEtat($etat);
  327.             $this->em->persist($connexion);
  328.             $this->em->flush();
  329.             $status='OK';
  330.             $msg 'Confirmation d\'accès effectuée avec succès.';
  331.         }
  332.     }
  333.     return $this->render('utilisateur/confirm_access.html.twig', ['status'=>$status,'msg' => $msg]);
  334. }
  335.     public function confirm_access_old(Request $request ,EtatRepository $EtatRepositoryConnexionAdministrateursRepository $ConnexionAdministrateursRepositoryAdministrateursRepository $AdministrateursRepository GlobalAdmin $globalAdmin ConfigSmtpRepository $ConfigSmtpRepository): Response
  336.     {
  337.         $connexion $this->em->createQuery(
  338.             'SELECT u
  339.             FROM App\Entity\ConnexionAdministrateurs u
  340.             
  341.             WHERE sha1(concat(u.token, u.id,u.adresse_ip )) = \''.$request->get('token').'\'
  342.              
  343.             '
  344.             )
  345.             ->getOneOrNullResult()  ;
  346.         if($connexion == null){
  347.             $msg 'Problème de récupération de session .';
  348.         }
  349.         else{
  350.             $etat $EtatRepository->findOneBy(['indice'=>'1']) ;
  351.             $connexion->setEtat($etat);
  352.             $this->em->persist($connexion);
  353.             $this->em->flush();
  354.             $msg 'Confirmation d\'accès effecutée avec succès .';
  355.         }
  356.         return $this->render('utilisateur/confirm_access.html.twig',['msg'=>$msg]);
  357.     }
  358.     
  359.     /**
  360.      * @Route("/utilisateurs", name="utilisateurs", methods={"GET","POST"}, options= {"expose"="true"})
  361.      */
  362.     public function utilisateurs(UtilisateurRepository $utilisateurRepository Request $requestConfigHeaderRepository $ConfigHeaderRepository NiveauRepository $NiveauRepository ): Response
  363.     {
  364.         if( ($this->session->get('susrD3p9LjjY86') != 'gA64ya3G5N') && ($request->hasSession()) ){
  365.             return $this->redirectToRoute('connexion');
  366.         }
  367.         $config_header $ConfigHeaderRepository->findAll()[0];
  368.         $niveau $NiveauRepository->findAll();
  369.         return $this->render('utilisateur/index.html.twig', [
  370.             'utilisateurs' => $utilisateurRepository->findAll(),
  371.             'config_header'=> $config_header,
  372.             'niveau'=>$niveau,
  373.         ]);
  374.         
  375.     }
  376.      /**
  377.      * @Route("/serverUtilisateurs", name="serverUtilisateurs", methods={"GET","POST"}, options= {"expose"="true"})
  378.      */
  379.     public function serverUtilisateurs(UtilisateurRepository $utilisateurRepository Request $requestConfigHeaderRepository $ConfigHeaderRepository ): Response
  380.     {
  381.         if( ($this->session->get('susrD3p9LjjY86') != 'gA64ya3G5N') && ($request->hasSession()) ){
  382.             return new Response('disconnect');
  383.         }
  384.         
  385.         
  386.         
  387.         $sql_where "" ;
  388.         
  389.         $limit =  $request->get('length') ;
  390.             
  391.         $offset $request->get('start') ;
  392.         
  393.         $array_search = array();
  394.         
  395.         $columns = ['u.identifiant'] ;
  396.         
  397.         $orders = [] ;
  398.         
  399.         
  400.         for($i=$i<count($request->get('order')) ;$i++ ){
  401.             
  402.              $orders[] = $columns$request->get('order')[$i]['column'] ].' '.$request->get('order')[$i]['dir'] ;
  403.             
  404.         }
  405.         
  406.         
  407.         if( count($orders)>0){
  408.         $order " ORDER BY ".implode(' , ',$orders) ;
  409.         }
  410.         else{
  411.         $order "" ;  
  412.         }
  413.         
  414.         
  415.         
  416.         
  417.         $total_utilisateurs $this->em->createQuery(
  418.             'SELECT u 
  419.             FROM App\Entity\Utilisateur u
  420.             
  421.             
  422.             WHERE 1=1 '.$sql_where.'
  423.              
  424.             '
  425.             )
  426.                 
  427.                 ->getResult()  ;
  428.       
  429.                 
  430.         $I_nbResultatsTotal count$total_utilisateurs ) ;
  431.         
  432.         
  433.         $utilisateurs $this->em->createQuery(
  434.                 'SELECT u 
  435.                 FROM App\Entity\Utilisateur u
  436.                
  437.                 
  438.                 WHERE 1=1 '.$sql_where.' '.$order.'
  439.                  
  440.                 '
  441.                 )
  442.                 ->setMaxResults($limit)
  443.                 ->setFirstResult($offset)
  444.                 ->getResult()  ;
  445.         
  446.         
  447.         $output = [] ; 
  448.                
  449.         foreach($utilisateurs as $utilisateur){
  450.             if($utilisateur->getVerif()=='1'){
  451.                 $verif="Actif";
  452.             }else{
  453.                 $verif="Désactif";
  454.             }
  455.             
  456.         $output[] = [
  457.                 
  458.                 'id'=>$utilisateur->getId() ,
  459.                 'nom'=>$utilisateur->getNom().' '.$utilisateur->getPrenom() ,
  460.                 'date'=>date_format$utilisateur->getCreatedAt() , 'd/m/Y'),
  461.                 'email'=>$utilisateur->getEmail(),
  462.                 'niveau'=>$utilisateur->getNiveau()->getNiveau(),
  463.                 'id_crypte'=>sha1($utilisateur->getId().$utilisateur->getToken()),
  464.                 'verif'=>$verif,
  465.                 
  466.         ];
  467.         
  468.         
  469.         
  470.         
  471.         }
  472.         
  473.         
  474.         $JSON json_encode($output);
  475.         $JSON '{"draw": '.$request->get('draw').',"recordsTotal":'.$I_nbResultatsTotal.',"recordsFiltered":'.$I_nbResultatsTotal.',"data":'.$JSON.'}';
  476.         $response   = new Response($JSON200, ['Content-Type' => 'application/json']);
  477.         return $response;
  478.         
  479.         
  480.         
  481.     }
  482.     
  483.     /**
  484.      * @Route("/utilisateur_new", name="utilisateur_new", methods={"GET","POST"}, options= {"expose"="true"})
  485.      */
  486.     public function utilisateur_new(UtilisateurRepository $utilisateurRepository NiveauRepository $NiveauRepository Request $requestConfigHeaderRepository $ConfigHeaderRepository ): Response
  487.     {
  488.      
  489.         if( ($this->session->get('susrD3p9LjjY86') != 'gA64ya3G5N') && ($request->hasSession()) ){
  490.             return $this->redirectToRoute('connexion');
  491.         } 
  492.         $existance_user $utilisateurRepository->findOneBy(["email"=>$request->get('email_n') ]) ;
  493.         if($existance_user!=null && $existance_user->getEtat() == ){
  494.             return new Response('KO');
  495.         }
  496.         
  497.         $mdp $this->setSaltMdp($request->get('mdp_n'));
  498.         $token $this->genererCode(20)  ;
  499.         $niveau $NiveauRepository->find($request->get('niveau_n'));
  500.         $etat $EtatRepository->findOneBy(['indice'=>'1']) ;
  501.         $utilisateur = new Utilisateur();
  502.         $utilisateur->setCreatedAt\DateTime::createFromFormat('d-m-Y H:i'date('d-m-Y H:i')) ) ;
  503.         $utilisateur->setConnexion\DateTime::createFromFormat('d-m-Y H:i'date('d-m-Y H:i')) ) ;
  504.         $utilisateur->setNom($request->get('nom_n'));
  505.         $utilisateur->setPrenom($request->get('prenom_n'));
  506.         $utilisateur->setEmail($request->get('email_n'));
  507.         $utilisateur->setIdentifiant($request->get('identifiant_n'));
  508.         $utilisateur->setToken($token);
  509.         $utilisateur->setPassword($mdp);
  510.         $utilisateur->setEtat($etat);
  511.         $utilisateur->setNiveau($niveau);
  512.         $utilisateur->setVerif($request->get('verif_n'));
  513.         $this->em->persist($utilisateur) ;
  514.         $this->em->flush() ;
  515.         return new Response('OK');
  516.     
  517.     }
  518.     /**
  519.      * @Route("/getOneUtilisateur", name="getOneUtilisateur", options = {"expose" = true})
  520.      */
  521.     public function getOneUtilisateur(UtilisateurRepository $utilisateurRepository NiveauRepository $NiveauRepository Request $requestConfigHeaderRepository $ConfigHeaderRepository ): Response
  522.     {
  523.         if($request->get('id')!=null){
  524.             $utilisateur $utilisateurRepository->findOneBy(['id'=>$request->get('id')]) ;
  525.             
  526.         }
  527.             $output = [
  528.                 'id'=>$utilisateur->getId() ,
  529.                 'nom'=>$utilisateur->getNom(),
  530.                 'prenom'=>$utilisateur->getPrenom(),
  531.                 'date'=>date_format$utilisateur->getCreatedAt() , 'd/m/Y'),
  532.                 'email'=>$utilisateur->getEmail(),
  533.                 'verif'=>$utilisateur->getVerif(),
  534.                 'identifiant'=>$utilisateur->getIdentifiant(),
  535.                 'niveau'=>$utilisateur->getNiveau()->getId(),
  536.             ];
  537.         
  538.         $JSON json_encode($output);
  539.         $response   = new Response($JSON200, ['Content-Type' => 'application/json']);
  540.         return $response;
  541.     }
  542.     /**
  543.      * @Route("/utilisateur_edit", name="utilisateur_edit", methods={"GET","POST"}, options= {"expose"="true"})
  544.      */
  545.     public function utilisateur_edit(UtilisateurRepository $utilisateurRepository NiveauRepository $NiveauRepository Request $requestConfigHeaderRepository $ConfigHeaderRepository ): Response
  546.     {
  547.      
  548.         if( ($this->session->get('susrD3p9LjjY86') != 'gA64ya3G5N') && ($request->hasSession()) ){
  549.             return $this->redirectToRoute('connexion');
  550.         } 
  551.         $existance_user $utilisateurRepository->findOneBy(["email"=>$request->get('email_n') ]) ;
  552.         if($existance_user!=null && $existance_user->getEtat() == ){
  553.             return new Response('KO');
  554.         }
  555.         
  556.         $mdp $this->setSaltMdp($request->get('mdp_n'));
  557.         $token $this->genererCode(20)  ;
  558.         $niveau $NiveauRepository->find($request->get('niveau_n'));
  559.         $etat $EtatRepository->findOneBy(['indice'=>'1']) ;
  560.         $utilisateur = new Utilisateur();
  561.         $utilisateur->setCreatedAt\DateTime::createFromFormat('d-m-Y H:i'date('d-m-Y H:i')) ) ;
  562.         $utilisateur->setConnexion\DateTime::createFromFormat('d-m-Y H:i'date('d-m-Y H:i')) ) ;
  563.         $utilisateur->setNom($request->get('nom_n'));
  564.         $utilisateur->setPrenom($request->get('prenom_n'));
  565.         $utilisateur->setEmail($request->get('email_n'));
  566.         $utilisateur->setIdentifiant($request->get('identifiant_n'));
  567.         $utilisateur->setToken($token);
  568.         $utilisateur->setPassword($mdp);
  569.         $utilisateur->setEtat($etat);
  570.         $utilisateur->setNiveau($niveau);
  571.         $utilisateur->setVerif($request->get('verif_n'));
  572.         $this->em->persist($utilisateur) ;
  573.         $this->em->flush() ;
  574.         return new Response('OK');
  575.     
  576.     }
  577. }