src/LocalLife/UserBundle/Security/Voter/SuperAdminVoter.php line 10

Open in your IDE?
  1. <?php
  2. namespace LocalLife\UserBundle\Security\Voter;
  3. use LocalLife\UserBundle\Entity\User;
  4. use Symfony\Component\Security\Core\Authorization\Voter\VoterInterface;
  5. use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
  6. use Symfony\Component\Security\Core\User\UserInterface;
  7. class SuperAdminVoter implements VoterInterface
  8. {
  9.     const ROLE_SUPER_ADMIN 'ROLE_SUPER_ADMIN';
  10.     public function supportsAttribute($attribute)
  11.     {
  12.         return true;
  13.     }
  14.     public function supportsClass($class)
  15.     {
  16.         return true;
  17.     }
  18.     public function vote(TokenInterface $token$object, array $attributes)
  19.     {
  20.         /** @var User $user */
  21.         $user $token->getUser();
  22.         if (!$user instanceof UserInterface) {
  23.             return VoterInterface::ACCESS_ABSTAIN;
  24.         }
  25.         $explodeRoles explode('_'$attributes[0]);
  26.         if ('OWNER' == $explodeRoles[count($explodeRoles) - 1]) {
  27.             return VoterInterface::ACCESS_ABSTAIN;
  28.         }
  29.         $roles $user->getRoles();
  30.         $explodeRoles strripos($attributes[0], '_');
  31.         if ('OWNER' == substr($attributes[0], $explodeRoles 1strlen($attributes[0]))) {
  32.             return VoterInterface::ACCESS_ABSTAIN;
  33.         }
  34.         if (in_array(self::ROLE_SUPER_ADMIN$roles)) {
  35.             return VoterInterface::ACCESS_GRANTED;
  36.         }
  37.         return VoterInterface::ACCESS_ABSTAIN;
  38.     }
  39. }