src/Bidcoz/Bundle/CoreBundle/Security/Authorization/Voter/SuperUserVoter.php line 14

Open in your IDE?
  1. <?php
  2. namespace Bidcoz\Bundle\CoreBundle\Security\Authorization\Voter;
  3. use RS\DiExtraBundle\Annotation as DI;
  4. use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
  5. use Symfony\Component\Security\Core\Authorization\Voter\Voter;
  6. use Symfony\Component\Security\Core\User\UserInterface;
  7. /**
  8.  * @DI\Service
  9.  * @DI\Tag("security.voter", attributes={"priority"=255})
  10.  */
  11. class SuperUserVoter extends Voter
  12. {
  13.     protected function voteOnAttribute(string $attribute$subjectTokenInterface $token)
  14.     {
  15.         return true;
  16.     }
  17.     public function vote(TokenInterface $token$subject, array $attributes)
  18.     {
  19.         $user $token->getUser();
  20.         if ($user instanceof UserInterface && $user->hasRole('ROLE_SUPER_ADMIN')) {
  21.             if (in_array('IS_IMPERSONATOR'$attributestrue)) {
  22.                 return self::ACCESS_ABSTAIN;
  23.             }
  24.             return self::ACCESS_GRANTED;
  25.         }
  26.         return self::ACCESS_ABSTAIN;
  27.     }
  28.     protected function supports(string $attribute$subject)
  29.     {
  30.         return true;
  31.     }
  32. }