src/Security/Voter/DiagnosticRepreneurUserTestVoter.php line 21

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. /**
  4.  * @author      Mehrez Labidi
  5.  */
  6. namespace App\Security\Voter;
  7. use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
  8. use Symfony\Component\Security\Core\Authorization\Voter\Voter;
  9. use Symfony\Component\HttpFoundation\RequestStack;
  10. use App\Services\ManagerEntity\DroitsAccesManagers;
  11. use Symfony\Component\Security\Core\Security;
  12. /**
  13.  * Description of ProfilRepreneurVoter
  14.  *
  15.  * @author mehrez
  16.  */
  17. class DiagnosticRepreneurUserTestVoter extends Voter {
  18.     public const VIEW_OWN_PROFIL_REPRENEUR 'ROLE_DIAGNOSTIC_REPRENEUR_USER_TEST';
  19.     private $requestStack;
  20.     /**
  21.      * Initialise le voter avec les dépendances nécessaires.
  22.      *
  23.      * @param Security            $security     Service de sécurité Symfony
  24.      * @param DroitsAccesManagers $dam          Gestionnaire des droits d'accès aux services
  25.      * @param RequestStack        $requestStack Pile des requêtes HTTP courantes
  26.      */
  27.     public function __construct(Security $securityDroitsAccesManagers $damRequestStack $requestStack) {
  28.         $this->security $security;
  29.         $this->dam $dam;
  30.         $this->requestStack $requestStack;
  31.     }
  32.     protected function supports(string $attribute$subject): bool {
  33.         return $attribute === self::VIEW_OWN_PROFIL_REPRENEUR;
  34.     }
  35.     protected function voteOnAttribute(string $attribute$subjectTokenInterface $token): bool {
  36.         $request $this->requestStack->getCurrentRequest();
  37.         if (!$request || !$this->security->getUser()) {
  38.             return false;
  39.         }
  40.         try {
  41.             $acces $this->dam->checkIfThisUserHasDroitService($this->security->getUser(), ["84"] );
  42.             return $acces;
  43.         } catch (\Exception $e) {
  44.             return false;
  45.         }
  46.     }
  47. }