src/AppBundle/Security/LegacyAuthenticator.php line 77

Open in your IDE?
  1. <?php
  2. namespace AppBundle\Security;
  3. use AppBundle\Entity\User;
  4. use Symfony\Component\HttpFoundation\JsonResponse;
  5. use Symfony\Component\HttpFoundation\Request;
  6. use Symfony\Component\HttpFoundation\Response;
  7. use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
  8. use Symfony\Component\Security\Core\Exception\AuthenticationException;
  9. use Symfony\Component\Security\Core\Exception\CustomUserMessageAuthenticationException;
  10. use Symfony\Component\Security\Http\Authenticator\AbstractAuthenticator;
  11. use Symfony\Component\Security\Http\Authenticator\Passport\Badge\UserBadge;
  12. use Symfony\Component\Security\Http\Authenticator\Passport\Passport;
  13. use Symfony\Component\Security\Http\Authenticator\Passport\SelfValidatingPassport;
  14. use Symfony\Component\Security\Core\User\UserProviderInterface;
  15. class LegacyAuthenticator extends AbstractAuthenticator
  16. {
  17.     private $userProvider;
  18.     public function __construct(UserProviderInterface $userProvider)
  19.     {
  20.         global $_SESSION;
  21.         $this->userProvider $userProvider;
  22.     }
  23.     // public function createToken(Passport $passport,  $firewallName): TokenInterface
  24.     // {
  25.         
  26.       
  27.     //     // Force session load via session access
  28.        
  29.     //     $user = null;
  30.     //     if (!empty($_SESSION['Login'])) {
  31.     //         if ($_SESSION['Login']['UserType'] === 'admin') {
  32.     //             $user = array(User::USER_TYPE_ADMIN, $_SESSION['Login']['AdminId']);
  33.     //         }
  34.     //         elseif ($_SESSION['Login']['UserType'] === 'employer') {
  35.     //             $user = array(User::USER_TYPE_EMPLOYER, $_SESSION['Login']['EmployerId']);
  36.     //         }
  37.     //         elseif ($_SESSION['Login']['UserType'] === 'participant') {
  38.     //             $user = array(User::USER_TYPE_PARTICIPANT, $_SESSION['Login']['ParticipantId']);
  39.     //         }
  40.     //         elseif ($_SESSION['Login']['UserType'] === 'reseller') {
  41.     //             $user = array(User::USER_TYPE_RESELLER, $_SESSION['Login']['ResellerId']);
  42.     //         }
  43.     //         elseif ($_SESSION['Login']['UserType'] === 'supervisor') {
  44.     //             $user = array(User::USER_TYPE_SUPERVISOR, $_SESSION['Login']['UserId']); // NOTE: SupervisorId is the top-level supervisor, but UserId is the actual supervisor
  45.     //         }
  46.             
  47.     //     }
  48.         
  49.     //     if ($user === null) {
  50.     //         throw new BadCredentialsException('No credentials');
  51.     //     }
  52.     //     return new CustomOauthToken($passport->getUser(), $passport->getAttribute('scope'));
  53.     //     // dd($user);
  54.     //    // return $user;
  55.     // }
  56.     
  57.    
  58.     public function supports(Request $request): ?bool
  59.     {
  60.        $_SESSION = isset($_COOKIE['language']) ? unserialize($_COOKIE['language']) : "";
  61.        $t = isset($_COOKIE['language']) ? true false;
  62.         return $t;
  63.     }
  64.     public function authenticate(Request $request): Passport
  65.     {
  66.          
  67.         $apiToken = isset($_SESSION['AdminLogin']['Login']) ? $_SESSION['AdminLogin']['Login'] : $_SESSION['Login'];
  68.         if (null === $apiToken) {
  69.             throw new CustomUserMessageAuthenticationException('No API token provided');
  70.         }
  71.        
  72.         return new SelfValidatingPassport(
  73.             new UserBadge($apiToken, function ($userIdentifier) {
  74.                 $user $this->userProvider->loadUserByUsername($userIdentifier);
  75.                 
  76.                 return $user;
  77.             })
  78.         );
  79.     }
  80.     public function onAuthenticationSuccess(Request $requestTokenInterface $tokenstring $firewallName): ?Response
  81.     {
  82.        
  83.         // Return null to let the request continue
  84.         return null;
  85.     }
  86.     public function onAuthenticationFailure(Request $requestAuthenticationException $exception): ?Response
  87.     {
  88.       
  89.         $data = [
  90.             'message' => $exception->getMessage()
  91.         ];
  92.         return new JsonResponse($dataResponse::HTTP_UNAUTHORIZED);
  93.     }
  94. }