src/Security/Authorization/Voter/SettingVoter.php line 10

Open in your IDE?
  1. <?php
  2. namespace App\Security\Authorization\Voter;
  3. use App\Entity\Setting;
  4. use App\Entity\User;
  5. use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
  6. use Symfony\Component\Security\Core\Authorization\Voter\Voter;
  7. class SettingVoter extends Voter
  8. {
  9.     const READ    'read';
  10.     const UPDATE  'update';
  11.     /**
  12.      * {@inheritDoc}
  13.      */
  14.     protected function supports($attribute$subject)
  15.     {
  16.         $attributes = [
  17.             self::UPDATE,
  18.         ];
  19.         if (!in_array($attribute$attributes)) {
  20.             return false;
  21.         }
  22.         if (!$subject instanceof Setting) {
  23.             return false;
  24.         }
  25.         return true;
  26.     }
  27.     /**
  28.      * {@inheritDoc}
  29.      */
  30.     protected function voteOnAttribute($attribute$subjectTokenInterface $token)
  31.     {
  32.         $user $token->getUser();
  33.         if (!$user instanceof User) {
  34.             return false;
  35.         }
  36.         if ($user->isSuperAdmin()) {
  37.             return true;
  38.         }
  39.         return false;
  40.     }
  41. }