src/Knitink/UniverseBundle/Security/ValveVoter.php line 18

Open in your IDE?
  1. <?php
  2. /**
  3.  * This file is part of the Knitink Project package.
  4.  *
  5.  * Created by Globunet Soluciones Tecnologicas, SL. on 13/01/17. <info@globunet.com>
  6.  * Copyright (c) 2016 Knitink Technologies, SL. All rights reserved.
  7.  */
  8. namespace Knitink\UniverseBundle\Security;
  9. use Knitink\UniverseBundle\Entity\Valve;
  10. use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
  11. use Symfony\Component\Security\Core\Authorization\Voter\Voter;
  12. use Symfony\Component\HttpFoundation\Session\Session;
  13. use Globunet\DinamicDatabaseBundle\Services\DatabaseConnector;
  14. class ValveVoter extends Voter
  15. {
  16.     private $databaseConnector;
  17.     private $session;
  18.     public function __construct(DatabaseConnector $databaseConnectorSession $session)
  19.     {
  20.         $this->databaseConnector $databaseConnector;
  21.         $this->session $session;
  22.     }
  23.     protected function supports($attribute$subject)
  24.     {
  25.         return $subject instanceof Valve && $attribute === 'VOTER_KNITINK_UNIVERSE_VALVE';
  26.     }
  27.     protected function voteOnAttribute($attribute$subjectTokenInterface $token)
  28.     {
  29.         $user $token->getUser();
  30.         if(($user instanceof \Symfony\Component\Security\Core\User\User || $user instanceof \Knitink\CoreBundle\Entity\User) && in_array("ROLE_SUPER_ADMIN"$user->getRoles())){
  31.             return true;
  32.         }
  33.         if (!$user instanceof \Knitink\CoreBundle\Entity\User) {
  34.             return false;
  35.         }
  36.         return $this->checker($user$attribute$subject);
  37.     }
  38.     public function checker($user$attribute$subject$em null)
  39.     {
  40.         return true;
  41.     }
  42. }