src/Controller/Users/User/SecurityController.php line 44

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Users\User;
  3. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  4. use Symfony\Component\Security\Core\SecurityContext;
  5. use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;
  6. use Symfony\Component\HttpFoundation\Request;
  7. use App\Service\Servicetext\GeneralServicetext;
  8. use App\Entity\Users\User\Newsletter;
  9. use App\Entity\Users\User\NewsletterType;
  10. use App\Entity\Users\User\Imgslide;
  11. use App\Entity\Produit\Service\Service;
  12. use App\Entity\Users\User\User;
  13. use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
  14. use App\Entity\Produit\Produit\Categorie;
  15. use App\Service\Email\Singleemail;
  16. class SecurityController extends AbstractController
  17. {
  18. private $params;
  19. private $_servicemail;
  20. public function __construct(ParameterBagInterface $paramsSingleemail $servicemail)
  21. {
  22.     $this->params $params;
  23.     $this->_servicemail $servicemail;
  24. }
  25. public function login(Request $request)
  26. {
  27.     $session $request->getSession();
  28.     // Si le visiteur est déjà identifié, on le redirige vers l'accueil
  29.     if($this->isGranted('IS_AUTHENTICATED_REMEMBERED')){
  30.         return $this->redirect($this->generateUrl('users_user_acces_plateforme'));
  31.     }
  32.     // On vérifie s'il y a des erreurs d'une précédente soumission du formulaire
  33.     $error '';
  34.     return $this->render('Theme/Users/User/Security/login.html.twig',
  35.     array('last_username' => '','error'=> $error));
  36. }
  37. public function accueilsite(GeneralServicetext $service$add)
  38. {
  39.     $em $this->getDoctrine()->getManager();
  40.     $user $this->getUser();
  41.     if ($this->isGranted('IS_AUTHENTICATED_REMEMBERED')){ //dès qu'un utilisateur se connecte il est redirigé vers le path / qui exécute directement ce controlleur.
  42.         $dureelastvisite round((time() - $user->getDatebeg())/60);
  43.         if($dureelastvisite >= 3)  //s'il ya plus de 3 minutes que utilisateur n'a pas actualisé sa sesion 
  44.         {
  45.             $user->setDatebeg(time());
  46.             $em->flush();
  47.         }
  48.     }
  49.     
  50.     $liste_slide $em->getRepository(Imgslide::class)
  51.                           ->myFindAll();
  52.     $slideaccueil $service->selectEntity($liste_slide);
  53.     $article_presentation $em->getRepository(Service::class)
  54.                               ->myFindAllPagineType('presentation',1,5);
  55.     
  56.     $liste_categorie $em->getRepository(Categorie::class)
  57.                           ->myFindAll();
  58.     foreach($liste_categorie as $cat)
  59.     {
  60.         $cat->setEm($em);
  61.     }
  62.     return $this->render('Theme/Users/User/Security/accueilsite.html.twig',
  63.     array('liste_slide'=>$liste_slide,'add'=>$add,'slideaccueil'=>$slideaccueil
  64.     'article_presentation'=>$article_presentation,'liste_categorie'=>$liste_categorie));
  65. }
  66. public function resetpassword(GeneralServicetext $service$etape)
  67. {
  68.     $em $this->getDoctrine()->getManager();
  69.     $session $this->get('session');
  70.     if($etape == 1)
  71.     {
  72.         if(isset($_POST['username']))
  73.         {
  74.             $repository $em->getRepository(User::class);
  75.             $user $repository->findOneBy(array('username'=>$_POST['username']));
  76.             
  77.             if($user != null)
  78.             {
  79.                 $code $user->getDatebeg();
  80.                 if($service->email($user->getUsername()))
  81.                 {
  82.                     $siteweb $this->params->get('siteweb');
  83.                     $sitename $this->params->get('sitename');
  84.                     $emailadmin $this->params->get('emailadmin');
  85.                     $response $this->_servicemail->sendNotifEmail(
  86.                         $user->name(30), //Nom du destinataire
  87.                         $user->getUsername(), //Email Destinataire
  88.                         $user->name(30).', Vous avez demandé la réinitialisation du mot de passe de votre compte '.$sitename//Objet de l'email
  89.                         $user->name(30).', Vous avez demandé la réinitialisation du mot de passe de votre compte '.$sitename//Grand Titre de l'email
  90.                         'Le code est: <strong style="font-size: 25px;">'.$code.'</strong></br></br> Si vous n\'avez pas demandé cette action, Aucune action n\'est requise de votre part.',  //Contenu de l'email
  91.                         $siteweb.'/login'  //Lien à suivre
  92.                     );
  93.                     $type 1;
  94.                 }else{
  95.                     $type 2;
  96.                 }
  97.                 
  98.                 return $this->render('Theme/Users/User/Security/resetpassword.html.twig',
  99.                 array('type' =>$type,'etape'=> $etape,'user'=>$user));
  100.             }else{
  101.                 echo 0;
  102.                 exit;
  103.             }
  104.         }else{
  105.             echo 0;
  106.             exit;
  107.         }
  108.     }else if($etape == 2)
  109.     {
  110.         if(isset($_POST['code']) and isset($_POST['id']))
  111.         {
  112.             $repository $em->getRepository(User::class);
  113.             $user $repository->find($_POST['id']);
  114.             
  115.             if($user != null and $user->getDatebeg() == trim($_POST['code']))
  116.             {
  117.                 $session->set('reset_password'1);
  118.                 
  119.                 
  120.                 return $this->render('Theme/Users/User/Security/resetpassword.html.twig',
  121.                 array('etape'=> $etape,'user'=>$user));
  122.             }else{
  123.                 echo 0;
  124.                 exit;
  125.             }
  126.         }else{
  127.             echo 0;
  128.             exit;
  129.         }
  130.     }else if($etape == 3)
  131.     {
  132.         if(isset($_POST['password']) and isset($_POST['id']))
  133.         {
  134.             $repository $em->getRepository(User::class);
  135.             $user $repository->find($_POST['id']);
  136.             $reset_password $session->get('reset_password');
  137.                 
  138.             if($user != null and $reset_password == 1)
  139.             {
  140.                 //sécurisation du mot de passe utilisateur
  141.                 $passuser $_POST['password'];
  142.                 /*
  143.                 $salt = substr(crypt($passuser,''), 0, 16);
  144.                 $user->setSalt($salt);
  145.                 $newpassword = $service->encrypt($passuser,$salt);
  146.                 */
  147.                 
  148.                 $user->setPassword($passuser);
  149.                 $em->flush();
  150.                 
  151.                 return $this->render('Theme/Users/User/Security/resetpassword.html.twig',
  152.                 array('etape'=> $etape,'user'=>$user));
  153.             }else{
  154.                 echo 0;
  155.                 exit;
  156.             }
  157.         }else{
  158.             echo 0;
  159.             exit;
  160.         }
  161.     }
  162.     echo 0;
  163.     exit;
  164. }
  165. }