src/Voter/AdminMarketingVoter.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 AdminMarketingVoter extends Voter
  7. {
  8.     const CABIN_CATEGORY_B2B_LIST "ADMIN_MARKETING_CABIN_CATEGORY_B2B_LIST";
  9.     const CABIN_CATEGORY_B2B_UPDATE "ADMIN_MARKETING_CABIN_CATEGORY_B2B_UPDATE";
  10.     const COMPANY_OFFER_LIST "ADMIN_MARKETING_COMPANY_OFFER_LIST";
  11.     const COMPANY_OFFER_CREATE "ADMIN_MARKETING_COMPANY_OFFER_CREATE";
  12.     const COMPANY_OFFER_UPDATE "ADMIN_MARKETING_COMPANY_OFFER_UPDATE";
  13.     const COMPANY_OFFER_REMOVE "ADMIN_MARKETING_COMPANY_OFFER_REMOVE";
  14.     const COMPANY_DISCOUNT_LIST "ADMIN_MARKETING_COMPANY_DISCOUNT_LIST";
  15.     const COMPANY_DISCOUNT_CREATE "ADMIN_MARKETING_COMPANY_DISCOUNT_CREATE";
  16.     const COMPANY_DISCOUNT_UPDATE "ADMIN_MARKETING_COMPANY_DISCOUNT_UPDATE";
  17.     const COMPANY_DISCOUNT_REMOVE "ADMIN_MARKETING_COMPANY_DISCOUNT_REMOVE";
  18.     const CROISILAND_OFFER_LIST "ADMIN_MARKETING_CROISILAND_OFFER_LIST";
  19.     const CROISILAND_OFFER_CREATE "ADMIN_MARKETING_CROISILAND_OFFER_CREATE";
  20.     const CROISILAND_OFFER_UPDATE "ADMIN_MARKETING_CROISILAND_OFFER_UPDATE";
  21.     const CROISILAND_OFFER_REMOVE "ADMIN_MARKETING_CROISILAND_OFFER_REMOVE";
  22.     const CROISILAND_DISCOUNT_LIST "ADMIN_MARKETING_CROISILAND_DISCOUNT_LIST";
  23.     const CROISILAND_DISCOUNT_CREATE "ADMIN_MARKETING_CROISILAND_DISCOUNT_CREATE";
  24.     const CROISILAND_DISCOUNT_UPDATE "ADMIN_MARKETING_CROISILAND_DISCOUNT_UPDATE";
  25.     const CROISILAND_DISCOUNT_REMOVE "ADMIN_MARKETING_CROISILAND_DISCOUNT_REMOVE";
  26.     const MIGRATION_DISCOUNT_LIST "ADMIN_MARKETING_MIGRATION_DISCOUNT_LIST";
  27.     const MIGRATION_DISCOUNT_UPDATE "ADMIN_MARKETING_MIGRATION_DISCOUNT_UPDATE";
  28.     const MIGRATION_DISCOUNT_REMOVE "ADMIN_MARKETING_MIGRATION_DISCOUNT_REMOVE";
  29.     const PRODUCT_LIST "ADMIN_MARKETING_PRODUCT_LIST";
  30.     const PRODUCT_CREATE "ADMIN_MARKETING_PRODUCT_CREATE";
  31.     const PRODUCT_UPDATE "ADMIN_MARKETING_PRODUCT_UPDATE";
  32.     const PRODUCT_REMOVE "ADMIN_MARKETING_PRODUCT_REMOVE";
  33.     const PRODUCT_VARIANTS_UPDATE "ADMIN_MARKETING_PRODUCT_VARIANTS_UPDATE";
  34.     const AUTO_PRODUCT_VARIANT_LIST "ADMIN_MARKETING_AUTO_PRODUCT_VARIANT_LIST";
  35.     const AUTO_PRODUCT_VARIANT_CREATE "ADMIN_MARKETING_AUTO_PRODUCT_VARIANT_CREATE";
  36.     const AUTO_PRODUCT_VARIANT_UPDATE "ADMIN_MARKETING_AUTO_PRODUCT_VARIANT_UPDATE";
  37.     const AUTO_PRODUCT_VARIANT_REMOVE "ADMIN_MARKETING_AUTO_PRODUCT_VARIANT_REMOVE";
  38.     const PRODUCT_CATEGORY_LIST "ADMIN_MARKETING_PRODUCT_CATEGORY_LIST";
  39.     const PRODUCT_CATEGORY_CREATE "ADMIN_MARKETING_PRODUCT_CATEGORY_CREATE";
  40.     const PRODUCT_CATEGORY_UPDATE "ADMIN_MARKETING_PRODUCT_CATEGORY_UPDATE";
  41.     const CABIN_SPECIFICITY_LIST "ADMIN_MARKETING_CABIN_SPECIFICITY_LIST";
  42.     const CABIN_SPECIFICITY_CREATE "ADMIN_MARKETING_CABIN_SPECIFICITY_CREATE";
  43.     const CABIN_SPECIFICITY_UPDATE "ADMIN_MARKETING_CABIN_SPECIFICITY_UPDATE";
  44.     const CABIN_SPECIFICITY_REMOVE "ADMIN_MARKETING_CABIN_SPECIFICITY_REMOVE";
  45.     const MISSING_DATA_LIST "ADMIN_MARKETING_MISSING_DATA_LIST";
  46.     const MISSING_DATA_UPDATE "ADMIN_MARKETING_MISSING_DATA_UPDATE";
  47.     const B2B_SERVICE_LIST "ADMIN_MARKETING_B2B_SERVICE_LIST";
  48.     protected function supports($attribute$subject): bool
  49.     {
  50.         return in_array($attribute, [
  51.             self::CABIN_CATEGORY_B2B_LIST,
  52.             self::CABIN_CATEGORY_B2B_UPDATE,
  53.             self::COMPANY_OFFER_LIST,
  54.             self::COMPANY_OFFER_CREATE,
  55.             self::COMPANY_OFFER_UPDATE,
  56.             self::COMPANY_OFFER_REMOVE,
  57.             self::COMPANY_DISCOUNT_LIST,
  58.             self::COMPANY_DISCOUNT_CREATE,
  59.             self::COMPANY_DISCOUNT_UPDATE,
  60.             self::COMPANY_DISCOUNT_REMOVE,
  61.             self::CROISILAND_OFFER_LIST,
  62.             self::CROISILAND_OFFER_CREATE,
  63.             self::CROISILAND_OFFER_UPDATE,
  64.             self::CROISILAND_OFFER_REMOVE,
  65.             self::CROISILAND_DISCOUNT_LIST,
  66.             self::CROISILAND_DISCOUNT_CREATE,
  67.             self::CROISILAND_DISCOUNT_UPDATE,
  68.             self::CROISILAND_DISCOUNT_REMOVE,
  69.             self::MIGRATION_DISCOUNT_LIST,
  70.             self::MIGRATION_DISCOUNT_UPDATE,
  71.             self::MIGRATION_DISCOUNT_REMOVE,
  72.             self::PRODUCT_LIST,
  73.             self::PRODUCT_CREATE,
  74.             self::PRODUCT_UPDATE,
  75.             self::PRODUCT_REMOVE,
  76.             self::PRODUCT_VARIANTS_UPDATE,
  77.             self::AUTO_PRODUCT_VARIANT_LIST,
  78.             self::AUTO_PRODUCT_VARIANT_CREATE,
  79.             self::AUTO_PRODUCT_VARIANT_UPDATE,
  80.             self::AUTO_PRODUCT_VARIANT_REMOVE,
  81.             self::PRODUCT_CATEGORY_LIST,
  82.             self::PRODUCT_CATEGORY_CREATE,
  83.             self::PRODUCT_CATEGORY_UPDATE,
  84.             self::CABIN_SPECIFICITY_LIST,
  85.             self::CABIN_SPECIFICITY_CREATE,
  86.             self::CABIN_SPECIFICITY_UPDATE,
  87.             self::CABIN_SPECIFICITY_REMOVE,
  88.             self::MISSING_DATA_LIST,
  89.             self::MISSING_DATA_UPDATE,
  90.             self::B2B_SERVICE_LIST,
  91.         ]);
  92.     }
  93.     protected function voteOnAttribute($attribute$subjectTokenInterface $token): bool
  94.     {
  95.         $loggedUser $token->getUser();
  96.         if (!$loggedUser instanceof UserInterface) {
  97.             return false;
  98.         }
  99.         return in_array($attribute$loggedUser->getRoles());
  100.     }
  101. }