src/Bidcoz/Bundle/CoreBundle/Security/Authorization/Voter/ItemVoter.php line 15

Open in your IDE?
  1. <?php
  2. namespace Bidcoz\Bundle\CoreBundle\Security\Authorization\Voter;
  3. use Bidcoz\Bundle\CoreBundle\Entity\Auction\Item;
  4. use RS\DiExtraBundle\Annotation as DI;
  5. use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
  6. use Symfony\Component\Security\Core\Authorization\Voter\Voter;
  7. use Symfony\Component\Security\Core\User\UserInterface;
  8. /**
  9.  * @DI\Service
  10.  * @DI\Tag("security.voter")
  11.  */
  12. class ItemVoter extends Voter
  13. {
  14.     const VIEW 'VIEW';
  15.     protected function supports($attribute$subject)
  16.     {
  17.         return $subject instanceof Item && self::VIEW === $attribute;
  18.     }
  19.     protected function voteOnAttribute($attribute$itemTokenInterface $token)
  20.     {
  21.         if (!$item->isPackagedItem()) {
  22.             return true;
  23.         }
  24.         // make sure there is a user object (i.e. that the user is logged in)
  25.         $user $token->getUser();
  26.         if (!$user instanceof UserInterface) {
  27.             return false;
  28.         }
  29.         if ($user->hasRole('ROLE_SUPER_ADMIN')) {
  30.             return true;
  31.         }
  32.         return false;
  33.     }
  34. }