src/Security/UserVerificationVoter.php line 9

Open in your IDE?
  1. <?php
  2. namespace App\Security;
  3. use App\Entity\User;
  4. use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
  5. use Symfony\Component\Security\Core\Authorization\Voter\Voter;
  6. class UserVerificationVoter extends Voter
  7. {
  8.     const VIEW 'view';
  9.     protected function supports(string $attribute$subject)
  10.     {
  11.         if (!in_array($attribute, [self::VIEW])) {
  12.             return false;
  13.         }
  14.         return true;
  15.     }
  16.     protected function voteOnAttribute(string $attribute$subjectTokenInterface $token)
  17.     {
  18.         $user $token->getUser();
  19.         if (!$user instanceof User) {
  20.             // the user must be logged in; if not, deny access
  21.             return false;
  22.         }
  23.         switch ($attribute) {
  24.             case self::VIEW:
  25.                 return $this->canView($user);
  26.         }
  27.     }
  28.     private function canView(User $user)
  29.     {
  30.         return true;
  31.     }
  32. }