src/Controller/UtilisateurController.php line 107

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