src/Voter/AprilFoolsVoter.php line 11

Open in your IDE?
  1. <?php
  2. // src/Voter/CustomPermissionVoter.php
  3. namespace App\Voter;
  4. use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
  5. use Symfony\Component\Security\Core\Authorization\Voter\Voter;
  6. use App\Model\AppConstant;
  7. use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
  8. class AprilFoolsVoter extends Voter
  9. {
  10.     const PERMISSION_NAME 'APRIL_FOOLS';
  11.     public function __construct(private ParameterBagInterface $parameterBag)
  12.     {
  13.         
  14.     }
  15.     protected function supports($attribute$subject)
  16.     {
  17.         return $attribute === self::PERMISSION_NAME;
  18.     }
  19.     protected function voteOnAttribute($attribute$subjectTokenInterface $token)
  20.     {
  21.         // $user = $token->getUser();
  22.         if(!$this->parameterBag->get('april_fools_active'))
  23.             return false;
  24.         $now strtotime("now");
  25.         return in_array('ROLE_USER'$token->getRoleNames()) && 
  26.             !in_array('ROLE_ADMIN'$token->getRoleNames()) && 
  27.             $now >= strtotime($this->parameterBag->get('april_fools_start')) && 
  28.             $now strtotime($this->parameterBag->get('april_fools_end_exclusive'));
  29.     }
  30.     
  31. }