src/Voter/AdminSaleBookingVoter.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 AdminSaleBookingVoter extends Voter
  7. {
  8.     const SPECIAL_REQUEST_LIST "ADMIN_SALE_BOOKING_SPECIAL_REQUEST_LIST";
  9.     const SPECIAL_REQUEST_TYPE_LIST "ADMIN_SALE_BOOKING_SPECIAL_REQUEST_TYPE_LIST";
  10.     const SPECIAL_REQUEST_TYPE_CREATE "ADMIN_SALE_BOOKING_SPECIAL_REQUEST_TYPE_CREATE";
  11.     const SPECIAL_REQUEST_TYPE_UPDATE "ADMIN_SALE_BOOKING_SPECIAL_REQUEST_TYPE_UPDATE";
  12.     const CABIN_OPTION_DURATION_LIST "ADMIN_SALE_BOOKING_CABIN_OPTION_DURATION_LIST";
  13.     const CABIN_OPTION_DURATION_CREATE "ADMIN_SALE_BOOKING_CABIN_OPTION_DURATION_CREATE";
  14.     const CABIN_OPTION_DURATION_UPDATE "ADMIN_SALE_BOOKING_CABIN_OPTION_DURATION_UPDATE";
  15.     const CABIN_OPTION_DURATION_REMOVE "ADMIN_SALE_BOOKING_CABIN_OPTION_DURATION_REMOVE";
  16.     const FORMALITY_SANITARY_PROTOCOL_LIST "ADMIN_SALE_BOOKING_FORMALITY_SANITARY_PROTOCOL_LIST";
  17.     const FORMALITY_SANITARY_PROTOCOL_CREATE "ADMIN_SALE_BOOKING_FORMALITY_SANITARY_PROTOCOL_CREATE";
  18.     const FORMALITY_SANITARY_PROTOCOL_UPDATE "ADMIN_SALE_BOOKING_FORMALITY_SANITARY_PROTOCOL_UPDATE";
  19.     const LEGAL_TEXT_LIST "ADMIN_SALE_BOOKING_LEGAL_TEXT_LIST";
  20.     const LEGAL_TEXT_CREATE "ADMIN_SALE_BOOKING_LEGAL_TEXT_CREATE";
  21.     const LEGAL_TEXT_UPDATE "ADMIN_SALE_BOOKING_LEGAL_TEXT_UPDATE";
  22.     const LEGAL_TEXT_DETAIL "ADMIN_SALE_BOOKING_LEGAL_TEXT_DETAIL";
  23.     const BOOKING_CONFIRMATION_LIST "ADMIN_SALE_BOOKING_BOOKING_CONFIRMATION_LIST";
  24.     const BOOKING_CONFIRMATION_UPDATE "ADMIN_SALE_BOOKING_BOOKING_CONFIRMATION_UPDATE";
  25.     const SELLER_SCHEDULE_LIST "ADMIN_SALE_BOOKING_SELLER_SCHEDULE_LIST";
  26.     const CONFIRMATION_RESPONSIBLE_LIST "ADMIN_SALE_BOOKING_CONFIRMATION_RESPONSIBLE_LIST";
  27.     const CONFIRMATION_RESPONSIBLE_CREATE "ADMIN_SALE_BOOKING_CONFIRMATION_RESPONSIBLE_CREATE";
  28.     const CONFIRMATION_RESPONSIBLE_UPDATE "ADMIN_SALE_BOOKING_CONFIRMATION_RESPONSIBLE_UPDATE";
  29.     const TODO_LIST "ADMIN_SALE_BOOKING_TODO_LIST";
  30.     const TODO_CREATE "ADMIN_SALE_BOOKING_TODO_CREATE";
  31.     const TODO_UPDATE "ADMIN_SALE_BOOKING_TODO_UPDATE";
  32.     const TODO_TYPE_LIST "ADMIN_SALE_BOOKING_TODO_TYPE_LIST";
  33.     const TODO_TYPE_CREATE "ADMIN_SALE_BOOKING_TODO_TYPE_CREATE";
  34.     const TODO_TYPE_UPDATE "ADMIN_SALE_BOOKING_TODO_TYPE_UPDATE";
  35.     protected function supports($attribute$subject): bool
  36.     {
  37.         return in_array($attribute, [
  38.             self::SPECIAL_REQUEST_LIST,
  39.             self::SPECIAL_REQUEST_TYPE_LIST,
  40.             self::SPECIAL_REQUEST_TYPE_CREATE,
  41.             self::SPECIAL_REQUEST_TYPE_UPDATE,
  42.             self::CABIN_OPTION_DURATION_LIST,
  43.             self::CABIN_OPTION_DURATION_CREATE,
  44.             self::CABIN_OPTION_DURATION_UPDATE,
  45.             self::CABIN_OPTION_DURATION_REMOVE,
  46.             self::FORMALITY_SANITARY_PROTOCOL_LIST,
  47.             self::FORMALITY_SANITARY_PROTOCOL_CREATE,
  48.             self::FORMALITY_SANITARY_PROTOCOL_UPDATE,
  49.             self::LEGAL_TEXT_LIST,
  50.             self::LEGAL_TEXT_CREATE,
  51.             self::LEGAL_TEXT_UPDATE,
  52.             self::LEGAL_TEXT_DETAIL,
  53.             self::BOOKING_CONFIRMATION_LIST,
  54.             self::BOOKING_CONFIRMATION_UPDATE,
  55.             self::SELLER_SCHEDULE_LIST,
  56.             self::CONFIRMATION_RESPONSIBLE_LIST,
  57.             self::CONFIRMATION_RESPONSIBLE_CREATE,
  58.             self::CONFIRMATION_RESPONSIBLE_UPDATE,
  59.             self::TODO_LIST,
  60.             self::TODO_CREATE,
  61.             self::TODO_UPDATE,
  62.             self::TODO_TYPE_LIST,
  63.             self::TODO_TYPE_CREATE,
  64.             self::TODO_TYPE_UPDATE,
  65.         ]);
  66.     }
  67.     protected function voteOnAttribute($attribute$subjectTokenInterface $token): bool
  68.     {
  69.         $loggedUser $token->getUser();
  70.         if (!$loggedUser instanceof UserInterface) {
  71.             return false;
  72.         }
  73.         return in_array($attribute$loggedUser->getRoles());
  74.     }
  75. }