src/Security/AuthenticationEntryPoint.php line 58

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. /**
  4.  * @author      Mehrez Labidi
  5.  */
  6. namespace App\Security;
  7. use Symfony\Component\HttpFoundation\RedirectResponse;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
  10. use Symfony\Component\Security\Core\Exception\AuthenticationException;
  11. use Symfony\Component\Security\Http\EntryPoint\AuthenticationEntryPointInterface;
  12. use App\Helper\Utils;
  13. class AuthenticationEntryPoint implements AuthenticationEntryPointInterface {
  14.     /**
  15.      * 
  16.      * @var type
  17.      */
  18.     private $urlGenerator;
  19.     /**
  20.      * 
  21.      * @param UrlGeneratorInterface $urlGenerator
  22.      */
  23.     public function __construct(UrlGeneratorInterface $urlGenerator) {
  24.         $this->urlGenerator $urlGenerator;
  25.     }
  26.     /**
  27.      * 
  28.      * @param Request $request
  29.      * @param AuthenticationException|null $authException
  30.      * @return RedirectResponse
  31.      */
  32.     public function start(Request $request, ?AuthenticationException $authException null): RedirectResponse {
  33.         $referer $request->headers->get('referer'); // previous url
  34.         $routeName $request->attributes->get('_route'); //current route
  35.         switch ($routeName) {
  36.             case "annuaires_experts_espace_admin_index":
  37.                 $request->getSession()->getFlashBag()->add('access.pour.authentifie'"Vous devez vous identifier pour pouvoir vous référencer dans l’annuaire des experts. ");
  38.                 if ($referer) {
  39.                     return new RedirectResponse($referer);
  40.                 } else {
  41.                     $session $request->getSession();
  42.                     $codePays $session->get('codePays');
  43.                     if (!$codePays) {
  44.                         $codePays = ($_COOKIE["codePays"]) ? strtolower($_COOKIE["codePays"]) : "fr";
  45.                     }
  46.                     return new RedirectResponse($this->urlGenerator->generate('index', ['codePays' => Utils::codePaysWithoutDash($codePays)]));
  47.                 }
  48.             default:
  49.                 $request->getSession()->getFlashBag()->add('access.pour.authentifie'"Merci de bien vouloir vous authentifier");
  50.                 $session $request->getSession();
  51.                 $codePays $session->get('codePays');
  52.                 if (!$codePays) {
  53.                     $codePays = ($_COOKIE["codePays"]) ? strtolower($_COOKIE["codePays"]) : "fr";
  54.                 }
  55.                 return new RedirectResponse($this->urlGenerator->generate('index', ['codePays' => Utils::codePaysWithoutDash($codePays)]));
  56.         }
  57.     }
  58. }