src/Voter/ProspectRequestVoter.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 ProspectRequestVoter extends Voter
  7. {
  8.     const QUOTE_REQUEST_TO_ASSIGN_LIST "PROSPECT_REQUEST_QUOTE_REQUEST_TO_ASSIGN_LIST";
  9.     const QUOTE_REQUEST_LIST "PROSPECT_REQUEST_QUOTE_REQUEST_LIST";
  10.     const QUOTE_REQUEST_DETAIL "PROSPECT_REQUEST_QUOTE_REQUEST_DETAIL";
  11.     const CREATE_QUOTE_REQUEST "PROSPECT_REQUEST_CREATE_QUOTE_REQUEST";
  12.     const UPDATE_QUOTE_REQUEST "PROSPECT_REQUEST_UPDATE_QUOTE_REQUEST";
  13.     const DONT_PROCESS_QUOTE_REQUEST "PROSPECT_REQUEST_DONT_PROCESS_QUOTE_REQUEST";
  14.     const ASSIGN_QUOTE_REQUEST "PROSPECT_REQUEST_ASSIGN_QUOTE_REQUEST";
  15.     const AUTO_ASSIGN_QUOTE_REQUEST "PROSPECT_REQUEST_AUTO_ASSIGN_QUOTE_REQUEST";
  16.     const REMOVE_ASSIGN_QUOTE_REQUEST "PROSPECT_REQUEST_REMOVE_ASSIGN_QUOTE_REQUEST";
  17.     const SHOW_QUOTE_REQUESTS_FROM_ALL_USERS "PROSPECT_REQUEST_SHOW_QUOTE_REQUESTS_FROM_ALL_USERS";
  18.     const CONTACT_REQUEST_TO_ASSIGN_LIST "PROSPECT_REQUEST_CONTACT_REQUEST_TO_ASSIGN_LIST";
  19.     const CONTACT_REQUEST_LIST "PROSPECT_REQUEST_CONTACT_REQUEST_LIST";
  20.     const CONTACT_REQUEST_DETAIL "PROSPECT_REQUEST_CONTACT_REQUEST_DETAIL";
  21.     const UPDATE_CONTACT_REQUEST "PROSPECT_REQUEST_UPDATE_CONTACT_REQUEST";
  22.     const DONT_PROCESS_CONTACT_REQUEST "PROSPECT_REQUEST_DONT_PROCESS_CONTACT_REQUEST";
  23.     const ASSIGN_CONTACT_REQUEST "PROSPECT_REQUEST_ASSIGN_CONTACT_REQUEST";
  24.     const REMOVE_ASSIGN_CONTACT_REQUEST "PROSPECT_REQUEST_REMOVE_ASSIGN_CONTACT_REQUEST";
  25.     const SWITCH_DONE_CONTACT_REQUEST "PROSPECT_REQUEST_SWITCH_DONE_CONTACT_REQUEST";
  26.     const SHOW_CONTACT_REQUESTS_FROM_ALL_USERS "PROSPECT_REQUEST_SHOW_CONTACT_REQUESTS_FROM_ALL_USERS";
  27.     const ADV_CONTACT_REQUEST_TO_ASSIGN_LIST "PROSPECT_REQUEST_ADV_CONTACT_REQUEST_TO_ASSIGN_LIST";
  28.     const ADV_CONTACT_REQUEST_LIST "PROSPECT_REQUEST_ADV_CONTACT_REQUEST_LIST";
  29.     const ADV_CONTACT_REQUEST_DETAIL "PROSPECT_REQUEST_ADV_CONTACT_REQUEST_DETAIL";
  30.     const UPDATE_ADV_CONTACT_REQUEST "PROSPECT_REQUEST_UPDATE_ADV_CONTACT_REQUEST";
  31.     const DONT_PROCESS_ADV_CONTACT_REQUEST "PROSPECT_REQUEST_DONT_PROCESS_ADV_CONTACT_REQUEST";
  32.     const ASSIGN_ADV_CONTACT_REQUEST "PROSPECT_REQUEST_ASSIGN_ADV_CONTACT_REQUEST";
  33.     const REMOVE_ASSIGN_ADV_CONTACT_REQUEST "PROSPECT_REQUEST_REMOVE_ASSIGN_ADV_CONTACT_REQUEST";
  34.     const SHOW_ADV_CONTACT_REQUESTS_FROM_ALL_USERS "PROSPECT_REQUEST_SHOW_ADV_CONTACT_REQUESTS_FROM_ALL_USERS";
  35.     const QUOTE_REMINDER_LIST "PROSPECT_REQUEST_QUOTE_REMINDER_LIST";
  36.     const PLANNING "PROSPECT_REQUEST_PLANNING";
  37.     const PLANNING_SHOW_ALL_SELLERS "PROSPECT_REQUEST_PLANNING_SHOW_ALL_SELLERS";
  38.     protected function supports($attribute$subject): bool
  39.     {
  40.         return in_array($attribute, [
  41.             self::QUOTE_REQUEST_TO_ASSIGN_LIST,
  42.             self::QUOTE_REQUEST_LIST,
  43.             self::QUOTE_REQUEST_DETAIL,
  44.             self::CREATE_QUOTE_REQUEST,
  45.             self::UPDATE_QUOTE_REQUEST,
  46.             self::DONT_PROCESS_QUOTE_REQUEST,
  47.             self::ASSIGN_QUOTE_REQUEST,
  48.             self::AUTO_ASSIGN_QUOTE_REQUEST,
  49.             self::REMOVE_ASSIGN_QUOTE_REQUEST,
  50.             self::SHOW_QUOTE_REQUESTS_FROM_ALL_USERS,
  51.             self::CONTACT_REQUEST_TO_ASSIGN_LIST,
  52.             self::CONTACT_REQUEST_LIST,
  53.             self::CONTACT_REQUEST_DETAIL,
  54.             self::UPDATE_CONTACT_REQUEST,
  55.             self::DONT_PROCESS_CONTACT_REQUEST,
  56.             self::ASSIGN_CONTACT_REQUEST,
  57.             self::REMOVE_ASSIGN_CONTACT_REQUEST,
  58.             self::SWITCH_DONE_CONTACT_REQUEST,
  59.             self::SHOW_CONTACT_REQUESTS_FROM_ALL_USERS,
  60.             self::ADV_CONTACT_REQUEST_TO_ASSIGN_LIST,
  61.             self::ADV_CONTACT_REQUEST_LIST,
  62.             self::ADV_CONTACT_REQUEST_DETAIL,
  63.             self::UPDATE_ADV_CONTACT_REQUEST,
  64.             self::DONT_PROCESS_ADV_CONTACT_REQUEST,
  65.             self::ASSIGN_ADV_CONTACT_REQUEST,
  66.             self::REMOVE_ASSIGN_ADV_CONTACT_REQUEST,
  67.             self::SHOW_ADV_CONTACT_REQUESTS_FROM_ALL_USERS,
  68.             self::QUOTE_REMINDER_LIST,
  69.             self::PLANNING,
  70.             self::PLANNING_SHOW_ALL_SELLERS
  71.         ]);
  72.     }
  73.     protected function voteOnAttribute($attribute$subjectTokenInterface $token): bool
  74.     {
  75.         $loggedUser $token->getUser();
  76.         if (!$loggedUser instanceof UserInterface) {
  77.             return false;
  78.         }
  79.         return in_array($attribute$loggedUser->getRoles());
  80.     }
  81. }