src/Controller/AppBundle/Helpers/Admin/ConsultantHelper.php line 61

Open in your IDE?
  1. <?php
  2. namespace App\Controller\AppBundle\Helpers\Admin;
  3. use App\Entity\Consultant;
  4. use Doctrine\ORM\EntityManagerInterface;
  5. use Psr\Container\ContainerInterface;
  6. use Symfony\Component\HttpFoundation\Request;
  7. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  8. use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
  9. class ConsultantHelper
  10. {
  11.     /**
  12.      * Check wheter a consultant can log in with the given credentials.
  13.      * @param $username string
  14.      * @param $password string
  15.      * @param EntityManagerInterface $em
  16.      * @return Consultant|bool
  17.      */
  18.     public static function checkLoginCredentials($username$passwordEntityManagerInterface $emUserPasswordHasherInterface $passwordHasher)
  19.     {
  20.         /* @var $consultant \App\Entity\Consultant */
  21.         $consultant $em->getRepository(Consultant::class)->findOneByUsername($username);
  22.         if (!$consultant || !$passwordHasher->isPasswordValid($consultant$password)) {
  23.             return false;
  24.         }
  25.         return $consultant;
  26.     }
  27.     /**
  28.      * Lets the consultant log in on session
  29.      * @param Consultant $consultant
  30.      * @param ContainerInterface $container
  31.      */
  32.     public static function login(Consultant $consultantSessionInterface $session)
  33.     {
  34.         $session->set('consultant'$consultant);
  35.     }
  36.     /**
  37.      * To check wheter a consultant is logged in or not
  38.      * @param ContainerInterface $container
  39.      * @return bool
  40.      */
  41.     public static function isLoggedIn(ContainerInterface $container)
  42.     {
  43.         return $container->get('session.handler.native_file')->has('consultant');
  44.     }
  45.     /**
  46.      * To check wheter a consultant is logged in or not
  47.      * @param ContainerInterface $container
  48.      * @return bool
  49.      */
  50.     public static function isLoggedInSession(SessionInterface $session)
  51.     {
  52.         return $session->has('consultant');
  53.     }
  54.     /**
  55.      * If the consultant is logged in, he will be logged out
  56.      * @param ContainerInterface $container
  57.      * @throws \Exception
  58.      */
  59.     public static function logout(SessionInterface $session)
  60.     {
  61.         if (ConsultantHelper::isLoggedInSession($session)) {
  62.             $session->clear();
  63. //            $container->get('security.token_storage')->setToken(null);
  64.         } else {
  65.             throw new \Exception('Consultant is niet ingelogd');
  66.         }
  67.     }
  68.     /**
  69.      * Gets current logged in consultant
  70.      * @param ContainerInterface $container
  71.      * @return Consultant
  72.      * @throws \Exception
  73.      */
  74.     public static function getLoggedInConsultant(Request $requestEntityManagerInterface $em)
  75.     {
  76.         if (ConsultantHelper::isLoggedInSession($request->getSession()) && $request->getSession()->get('consultant')->getUsername() !== null) {
  77.             /** @var Consultant $consultant */
  78.             $consultantName $request->getSession()->get('consultant')->getUsername();
  79.             $consultant $em->getRepository(Consultant::class)->findOneByUsername($consultantName);
  80.             return $consultant;
  81.         } else {
  82.             return false;
  83.         }
  84.     }
  85. }