src/Voter/AdvVoter.php line 8

Open in your IDE?
  1. <?php
  2. namespace App\Voter;
  3. use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
  4. use Symfony\Component\Security\Core\Authorization\Voter\Voter;
  5. use Symfony\Component\Security\Core\User\UserInterface;
  6. class AdvVoter extends Voter
  7. {
  8.     const TASK_LIST "ADV_TASK_LIST";
  9.     const TASK_TO_ASSIGN_LIST "ADV_TASK_TO_ASSIGN_LIST";
  10.     const TASK_TO_PROCESS_LIST "ADV_TASK_TO_PROCESS_LIST";
  11.     const BOOKING_TO_UPDATE_LIST "ADV_BOOKING_TO_UPDATE_LIST";
  12.     const BOOKING_CONFIRMATION_LIST "ADV_BOOKING_CONFIRMATION_LIST";
  13.     const BOOKING_CONFIRMATION_UPDATE "ADV_BOOKING_CONFIRMATION_UPDATE";
  14.     const REQUEST_LIST "ADV_REQUEST_LIST";
  15.     const REQUEST_CREATE "ADV_REQUEST_CREATE";
  16.     const REQUEST_UPDATE "ADV_REQUEST_UPDATE";
  17.     const BOOKING_CHANGE_LIST "ADV_BOOKING_CHANGE_LIST";
  18.     const BOOKING_CHANGE_CREATE "ADV_BOOKING_CHANGE_CREATE";
  19.     const BOOKING_CHANGE_UPDATE "ADV_BOOKING_CHANGE_UPDATE";
  20.     const BOOKING_CHANGE_STATE_LIST "ADV_BOOKING_CHANGE_STATE_LIST";
  21.     const BOOKING_CHANGE_STATE_CREATE "ADV_BOOKING_CHANGE_STATE_CREATE";
  22.     const BOOKING_CHANGE_STATE_UPDATE "ADV_BOOKING_CHANGE_STATE_UPDATE";
  23.     const AMENDMENT_LIST "ADV_AMENDMENT_LIST";
  24.     const PASSENGER_FORMALITY_LIST "ADV_PASSENGER_FORMALITY_LIST";
  25.     const FIP_LIST "ADV_FIP_LIST";
  26.     const FIP_UPDATE "ADV_FIP_UPDATE";
  27.     const BOOKING_CONFIRMATION_ASSIGNMENT_LIST "ADV_BOOKING_CONFIRMATION_ASSIGNMENT_LIST";
  28.     const SPECIAL_REQUEST_DOCUMENT_LIST "ADV_SPECIAL_REQUEST_DOCUMENT_LIST";
  29.     const SPECIAL_REQUEST_DOCUMENT_CREATE "ADV_SPECIAL_REQUEST_DOCUMENT_CREATE";
  30.     const SPECIAL_REQUEST_DOCUMENT_UPDATE "ADV_SPECIAL_REQUEST_DOCUMENT_UPDATE";
  31.     const BOOKING_LIST "ADV_BOOKING_LIST";
  32.     protected function supports($attribute$subject): bool
  33.     {
  34.         return in_array($attribute, [
  35.             self::TASK_LIST,
  36.             self::TASK_TO_ASSIGN_LIST,
  37.             self::TASK_TO_PROCESS_LIST,
  38.             self::BOOKING_TO_UPDATE_LIST,
  39.             self::BOOKING_CONFIRMATION_LIST,
  40.             self::BOOKING_CONFIRMATION_UPDATE,
  41.             self::REQUEST_LIST,
  42.             self::REQUEST_CREATE,
  43.             self::REQUEST_UPDATE,
  44.             self::BOOKING_CHANGE_LIST,
  45.             self::BOOKING_CHANGE_CREATE,
  46.             self::BOOKING_CHANGE_UPDATE,
  47.             self::BOOKING_CHANGE_STATE_LIST,
  48.             self::BOOKING_CHANGE_STATE_CREATE,
  49.             self::BOOKING_CHANGE_STATE_UPDATE,
  50.             self::AMENDMENT_LIST,
  51.             self::PASSENGER_FORMALITY_LIST,
  52.             self::FIP_LIST,
  53.             self::FIP_UPDATE,
  54.             self::BOOKING_CONFIRMATION_ASSIGNMENT_LIST,
  55.             self::SPECIAL_REQUEST_DOCUMENT_LIST,
  56.             self::SPECIAL_REQUEST_DOCUMENT_CREATE,
  57.             self::SPECIAL_REQUEST_DOCUMENT_UPDATE,
  58.             self::BOOKING_LIST,
  59.         ]);
  60.     }
  61.     protected function voteOnAttribute($attribute$subjectTokenInterface $token): bool
  62.     {
  63.         $loggedUser $token->getUser();
  64.         if (!$loggedUser instanceof UserInterface) {
  65.             return false;
  66.         }
  67.         return in_array($attribute$loggedUser->getRoles());
  68.     }
  69. }