src/Services/UserSessionManager.php line 29

Open in your IDE?
  1. <?php
  2. namespace App\Service;
  3. use App\Entity\User;
  4. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  5. use Doctrine\ORM\EntityManagerInterface;
  6. class UserSessionManager
  7. {
  8.     private $session;
  9.     private $entityManager;
  10.     public function __construct(SessionInterface $sessionEntityManagerInterface $entityManager)
  11.     {
  12.         $this->session $session;
  13.         $this->entityManager $entityManager;
  14.     }
  15.     public function setCurrentUser(User $user)
  16.     {
  17.         $userData serialize($user);
  18.         $this->session->set('current_user_data'$userData);
  19.     }
  20.     public function getCurrentUser(): ?User
  21.     {
  22.         $userData $this->session->get('current_user_data');
  23.         if ($userData) {
  24.             // Unserialize the user data to get the user object
  25.             return unserialize($userData, ['allowed_classes' => [User::class]]);
  26.         }
  27.         return null;
  28.     }
  29.     public function clearSession()
  30.     {
  31.         $this->session->remove('current_user_data');
  32.     }
  33.     public function isUserLoggedIn(): bool
  34.     {
  35.         return $this->session->has('current_user_data');
  36.     }
  37. }