src/Voter/HomeModuleVoter.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 HomeModuleVoter extends Voter
  7. {
  8.     const HOME_MODULE_DEFAULT 'HOME_MODULE_DEFAULT';
  9.     const HOME_MODULE_WEB_QUOTE_REQUEST_TO_ASSIGN 'HOME_MODULE_WEB_QUOTE_REQUEST_TO_ASSIGN';
  10.     const HOME_MODULE_WEB_QUOTE_REQUEST_TO_ASSIGN_DETAILED 'HOME_MODULE_WEB_QUOTE_REQUEST_TO_ASSIGN_DETAILED';
  11.     const HOME_MODULE_CONTACT_REQUEST_TO_ASSIGN 'HOME_MODULE_CONTACT_REQUEST_TO_ASSIGN';
  12.     const HOME_MODULE_CONTACT_REQUEST_TO_ASSIGN_DETAILED 'HOME_MODULE_CONTACT_REQUEST_TO_ASSIGN_DETAILED';
  13.     const HOME_MODULE_APPOINTMENT_REQUEST_TO_ASSIGN 'HOME_MODULE_APPOINTMENT_REQUEST_TO_ASSIGN';
  14.     const HOME_MODULE_APPOINTMENT_REQUEST_TO_ASSIGN_DETAILED 'HOME_MODULE_APPOINTMENT_REQUEST_TO_ASSIGN_DETAILED';
  15.     const HOME_MODULE_MAIL_QUOTE_REQUEST_TO_ASSIGN 'HOME_MODULE_MAIL_QUOTE_REQUEST_TO_ASSIGN';
  16.     const HOME_MODULE_MAIL_QUOTE_REQUEST_TO_ASSIGN_DETAILED 'HOME_MODULE_MAIL_QUOTE_REQUEST_TO_ASSIGN_DETAILED';
  17.     const HOME_MODULE_ATTRIBUTED_WEB_QUOTE_REQUEST_IN_PROGRESS 'HOME_MODULE_ATTRIBUTED_WEB_QUOTE_REQUEST_IN_PROGRESS';
  18.     const HOME_MODULE_ATTRIBUTED_CONTACT_REQUEST_IN_PROGRESS 'HOME_MODULE_ATTRIBUTED_CONTACT_REQUEST_IN_PROGRESS';
  19.     const HOME_MODULE_ATTRIBUTED_APPOINTMENT_REQUEST_IN_PROGRESS 'HOME_MODULE_ATTRIBUTED_APPOINTMENT_REQUEST_IN_PROGRESS';
  20.     const HOME_MODULE_ATTRIBUTED_MAIL_QUOTE_REQUEST_IN_PROGRESS 'HOME_MODULE_ATTRIBUTED_MAIL_QUOTE_REQUEST_IN_PROGRESS';
  21.     const HOME_MODULE_QUOTE_REQUEST_IN_PROGRESS 'HOME_MODULE_QUOTE_REQUEST_IN_PROGRESS';
  22.     const HOME_MODULE_QUOTE_REQUEST_IN_PROGRESS_ALL_SELLERS 'HOME_MODULE_QUOTE_REQUEST_IN_PROGRESS_ALL_SELLERS';
  23.     const HOME_MODULE_MUTED_QUOTE_REQUEST_RELAUNCH 'HOME_MODULE_MUTED_QUOTE_REQUEST_RELAUNCH';
  24.     const HOME_MODULE_MUTED_QUOTE_REQUEST_RELAUNCH_ALL_SELLERS 'HOME_MODULE_MUTED_QUOTE_REQUEST_RELAUNCH_ALL_SELLERS';
  25.     const HOME_MODULE_CA_EN_COURS 'HOME_MODULE_CA_EN_COURS';
  26.     const HOME_MODULE_NUMBER_OF_QUOTES_PROVIDED 'HOME_MODULE_NUMBER_OF_QUOTES_PROVIDED';
  27.     const HOME_MODULE_NUMBER_OF_QUOTES_PROVIDED_ALL_SELLERS 'HOME_MODULE_NUMBER_OF_QUOTES_PROVIDED_ALL_SELLERS';
  28.     const HOME_MODULE_QUOTE_CONVERSION_RATE_PROVIDED 'HOME_MODULE_QUOTE_CONVERSION_RATE_PROVIDED';
  29.     const HOME_MODULE_QUOTE_CONVERSION_RATE_PROVIDED_ALL_SELLERS 'HOME_MODULE_QUOTE_CONVERSION_RATE_PROVIDED_ALL_SELLERS';
  30.     const HOME_MODULE_NUMBER_OF_QUOTES_CURRENTLY_VALID 'HOME_MODULE_NUMBER_OF_QUOTES_CURRENTLY_VALID';
  31.     const HOME_MODULE_NUMBER_OF_QUOTES_CURRENTLY_VALID_ALL_SELLERS 'HOME_MODULE_NUMBER_OF_QUOTES_CURRENTLY_VALID_ALL_SELLERS';
  32.     const HOME_MODULE_NUMBER_OF_BOOKING_TO_CONFIRM 'HOME_MODULE_NUMBER_OF_BOOKING_TO_CONFIRM';
  33.     const HOME_MODULE_CLIENT_FILES_BUTTON 'HOME_MODULE_CLIENT_FILES_BUTTON';
  34.     const HOME_MODULE_SELLER_BONUS_BUTTON 'HOME_MODULE_SELLER_BONUS_BUTTON';
  35.     const HOME_MODULE_REQUEST_LIST 'HOME_MODULE_REQUEST_LIST';
  36.     const HOME_MODULE_APPOINTMENT_REQUEST_LIST 'HOME_MODULE_APPOINTMENT_REQUEST_LIST';
  37.     const HOME_MODULE_NUMBER_OF_PARTNERS 'HOME_MODULE_NUMBER_OF_PARTNERS';
  38.     const HOME_MODULE_NUMBER_OF_PARTNER_FOLLOW_UP 'HOME_MODULE_NUMBER_OF_PARTNER_FOLLOW_UP';
  39.     const HOME_MODULE_NUMBER_OF_COMPANY_OFFERS 'HOME_MODULE_NUMBER_OF_COMPANY_OFFERS';
  40.     const HOME_MODULE_PARTNER_TOTAL_TURNOVER 'HOME_MODULE_PARTNER_TOTAL_TURNOVER';
  41.     const HOME_MODULE_PARTNER_DETAILED_TURNOVER 'HOME_MODULE_PARTNER_DETAILED_TURNOVER';
  42.     const HOME_MODULE_NUMBER_OF_SEGMENTS 'HOME_MODULE_NUMBER_OF_SEGMENTS';
  43.     const HOME_MODULE_NUMBER_OF_PRODUCT_DISCOUNT 'HOME_MODULE_NUMBER_OF_PRODUCT_DISCOUNT';
  44.     const HOME_MODULE_COMPANY_OFFERS 'HOME_MODULE_COMPANY_OFFERS';
  45.     const HOME_MODULE_MARKETING_WEB_QUOTE_REQUEST 'HOME_MODULE_MARKETING_WEB_QUOTE_REQUEST';
  46.     const HOME_MODULE_MARKETING_WEB_QUOTE 'HOME_MODULE_MARKETING_WEB_QUOTE';
  47.     const HOME_MODULE_MARKETING_BOOKING 'HOME_MODULE_MARKETING_BOOKING';
  48.     const HOME_MODULE_WEBSERVICES 'HOME_MODULE_WEBSERVICES';
  49.     const HOME_MODULE_MARKETING_ONGOING_CAMPAIGNS 'HOME_MODULE_MARKETING_ONGOING_CAMPAIGNS';
  50.     const HOME_MODULE_NUMBER_OF_FULLWEB_BOOKINGS 'HOME_MODULE_NUMBER_OF_FULLWEB_BOOKINGS';
  51.     protected function supports($attribute$subject): bool
  52.     {
  53.         return in_array($attribute, [
  54.             self::HOME_MODULE_DEFAULT,
  55.             self::HOME_MODULE_WEB_QUOTE_REQUEST_TO_ASSIGN,
  56.             self::HOME_MODULE_WEB_QUOTE_REQUEST_TO_ASSIGN_DETAILED,
  57.             self::HOME_MODULE_CONTACT_REQUEST_TO_ASSIGN,
  58.             self::HOME_MODULE_CONTACT_REQUEST_TO_ASSIGN_DETAILED,
  59.             self::HOME_MODULE_APPOINTMENT_REQUEST_TO_ASSIGN,
  60.             self::HOME_MODULE_APPOINTMENT_REQUEST_TO_ASSIGN_DETAILED,
  61.             self::HOME_MODULE_MAIL_QUOTE_REQUEST_TO_ASSIGN,
  62.             self::HOME_MODULE_MAIL_QUOTE_REQUEST_TO_ASSIGN_DETAILED,
  63.             self::HOME_MODULE_ATTRIBUTED_WEB_QUOTE_REQUEST_IN_PROGRESS,
  64.             self::HOME_MODULE_ATTRIBUTED_CONTACT_REQUEST_IN_PROGRESS,
  65.             self::HOME_MODULE_ATTRIBUTED_APPOINTMENT_REQUEST_IN_PROGRESS,
  66.             self::HOME_MODULE_ATTRIBUTED_MAIL_QUOTE_REQUEST_IN_PROGRESS,
  67.             self::HOME_MODULE_QUOTE_REQUEST_IN_PROGRESS,
  68.             self::HOME_MODULE_QUOTE_REQUEST_IN_PROGRESS_ALL_SELLERS,
  69.             self::HOME_MODULE_MUTED_QUOTE_REQUEST_RELAUNCH,
  70.             self::HOME_MODULE_MUTED_QUOTE_REQUEST_RELAUNCH_ALL_SELLERS,
  71.             self::HOME_MODULE_CA_EN_COURS,
  72.             self::HOME_MODULE_NUMBER_OF_QUOTES_PROVIDED,
  73.             self::HOME_MODULE_NUMBER_OF_QUOTES_PROVIDED_ALL_SELLERS,
  74.             self::HOME_MODULE_QUOTE_CONVERSION_RATE_PROVIDED,
  75.             self::HOME_MODULE_QUOTE_CONVERSION_RATE_PROVIDED_ALL_SELLERS,
  76.             self::HOME_MODULE_NUMBER_OF_QUOTES_CURRENTLY_VALID,
  77.             self::HOME_MODULE_NUMBER_OF_QUOTES_CURRENTLY_VALID_ALL_SELLERS,
  78.             self::HOME_MODULE_NUMBER_OF_BOOKING_TO_CONFIRM,
  79.             self::HOME_MODULE_CLIENT_FILES_BUTTON,
  80.             self::HOME_MODULE_SELLER_BONUS_BUTTON,
  81.             self::HOME_MODULE_REQUEST_LIST,
  82.             self::HOME_MODULE_APPOINTMENT_REQUEST_LIST,
  83.             self::HOME_MODULE_NUMBER_OF_PARTNERS,
  84.             self::HOME_MODULE_NUMBER_OF_PARTNER_FOLLOW_UP,
  85.             self::HOME_MODULE_NUMBER_OF_COMPANY_OFFERS,
  86.             self::HOME_MODULE_PARTNER_TOTAL_TURNOVER,
  87.             self::HOME_MODULE_PARTNER_DETAILED_TURNOVER,
  88.             self::HOME_MODULE_NUMBER_OF_SEGMENTS,
  89.             self::HOME_MODULE_NUMBER_OF_PRODUCT_DISCOUNT,
  90.             self::HOME_MODULE_COMPANY_OFFERS,
  91.             self::HOME_MODULE_MARKETING_WEB_QUOTE_REQUEST,
  92.             self::HOME_MODULE_MARKETING_WEB_QUOTE,
  93.             self::HOME_MODULE_MARKETING_BOOKING,
  94.             self::HOME_MODULE_WEBSERVICES,
  95.             self::HOME_MODULE_MARKETING_ONGOING_CAMPAIGNS,
  96.             self::HOME_MODULE_NUMBER_OF_FULLWEB_BOOKINGS,
  97.         ]);
  98.     }
  99.     protected function voteOnAttribute($attribute$subjectTokenInterface $token): bool
  100.     {
  101.         $loggedUser $token->getUser();
  102.         if (!$loggedUser instanceof UserInterface) {
  103.             return false;
  104.         }
  105.         return in_array($attribute$loggedUser->getRoles());
  106.     }
  107. }