src/Service/SelectedEntityService.php line 27

Open in your IDE?
  1. <?php
  2. namespace App\Service;
  3. use App\Entity\Configuration\CompanyEntity;
  4. use Symfony\Component\Security\Core\Security;
  5. use Symfony\Component\HttpFoundation\RequestStack;
  6. use App\Repository\Configuration\CompanyEntityRepository;
  7. class SelectedEntityService
  8. {
  9.     private $security;
  10.     private $requestStack;
  11.     private $companyEntityRepository;
  12.     public function __construct(Security $securityRequestStack $requestStackCompanyEntityRepository $companyEntityRepository)
  13.     {
  14.         $this->security $security;
  15.         $this->requestStack $requestStack;
  16.         $this->companyEntityRepository $companyEntityRepository;
  17.     }
  18.     public function getSelectedEntity(): ?CompanyEntity
  19.     {
  20.         $user $this->security->getUser();
  21.         $session $this->requestStack->getCurrentRequest()->getSession();
  22.         $selectedEntityId $session->get('selected_entity_id');
  23.         $selectedEntity null;
  24.         if ($selectedEntityId && ($this->security->isGranted('ROLE_ADMIN') || $this->security->isGranted('ROLE_DIRECTION'))) {
  25.             $selectedEntity $this->companyEntityRepository->find($selectedEntityId);
  26.         } elseif ($user && count($user->getEntities()) === 1) {
  27.             $selectedEntity $user->getEntities()->first();
  28.         }
  29.         return $selectedEntity;
  30.     }
  31. }