src/Voter/AdvAdminVoter.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 AdvAdminVoter extends Voter
  7. {
  8.     const REQUEST_STATE_LIST "ADV_ADMIN_REQUEST_STATE_LIST";
  9.     const REQUEST_STATE_CREATE "ADV_ADMIN_REQUEST_STATE_CREATE";
  10.     const REQUEST_STATE_UPDATE "ADV_ADMIN_REQUEST_STATE_UPDATE";
  11.     const MAJOR_CHANGES_LIST "ADV_ADMIN_MAJOR_CHANGES_LIST";
  12.     const MAJOR_CHANGES_CREATE "ADV_ADMIN_MAJOR_CHANGES_CREATE";
  13.     const MAJOR_CHANGES_UPDATE "ADV_ADMIN_MAJOR_CHANGES_UPDATE";
  14.     const MAJOR_CHANGES_REMOVE "ADV_ADMIN_MAJOR_CHANGES_REMOVE";
  15.     const CUSTOMER_SERVICE_SCHEDULE_LIST "ADV_ADMIN_CUSTOMER_SERVICE_SCHEDULE_LIST";
  16.     const FORMALITY_TYPE_LIST "ADV_ADMIN_FORMALITY_TYPE_LIST";
  17.     const FORMALITY_TYPE_CREATE "ADV_ADMIN_FORMALITY_TYPE_CREATE";
  18.     const FORMALITY_TYPE_UPDATE "ADV_ADMIN_FORMALITY_TYPE_UPDATE";
  19.     const FORMALITY_LIST "ADV_ADMIN_FORMALITY_LIST";
  20.     const FORMALITY_CREATE "ADV_ADMIN_FORMALITY_CREATE";
  21.     const FORMALITY_UPDATE "ADV_ADMIN_FORMALITY_UPDATE";
  22.     const FIP_LIST "ADV_ADMIN_FIP_LIST";
  23.     const FIP_CREATE "ADV_ADMIN_FIP_CREATE";
  24.     const FIP_UPDATE "ADV_ADMIN_FIP_UPDATE";
  25.     const FIP_REMOVE "ADV_ADMIN_FIP_REMOVE";
  26.     const SPECIAL_REQUEST_STATE_LIST "ADV_ADMIN_SPECIAL_REQUEST_STATE_LIST";
  27.     const SPECIAL_REQUEST_STATE_CREATE "ADV_ADMIN_SPECIAL_REQUEST_STATE_CREATE";
  28.     const SPECIAL_REQUEST_STATE_UPDATE "ADV_ADMIN_SPECIAL_REQUEST_STATE_UPDATE";
  29.     const CGV_LIST "ADV_ADMIN_CGV_LIST";
  30.     const CGV_CREATE "ADV_ADMIN_CGV_CREATE";
  31.     const CGV_UPDATE "ADV_ADMIN_CGV_UPDATE";
  32.     const CGV_DETAIL "ADV_ADMIN_CGV_DETAIL";
  33.     const COMPLAINT_LIST "ADV_ADMIN_COMPLAINT_LIST";
  34.     const COMPLAINT_STATE_LIST "ADV_ADMIN_COMPLAINT_STATE_LIST";
  35.     const COMPLAINT_STATE_CREATE "ADV_ADMIN_COMPLAINT_STATE_CREATE";
  36.     const COMPLAINT_STATE_UPDATE "ADV_ADMIN_COMPLAINT_STATE_UPDATE";
  37.     protected function supports($attribute$subject): bool
  38.     {
  39.         return in_array($attribute, [
  40.             self::REQUEST_STATE_LIST,
  41.             self::REQUEST_STATE_CREATE,
  42.             self::REQUEST_STATE_UPDATE,
  43.             self::MAJOR_CHANGES_LIST,
  44.             self::MAJOR_CHANGES_CREATE,
  45.             self::MAJOR_CHANGES_UPDATE,
  46.             self::MAJOR_CHANGES_REMOVE,
  47.             self::CUSTOMER_SERVICE_SCHEDULE_LIST,
  48.             self::FORMALITY_TYPE_LIST,
  49.             self::FORMALITY_TYPE_CREATE,
  50.             self::FORMALITY_TYPE_UPDATE,
  51.             self::FORMALITY_LIST,
  52.             self::FORMALITY_CREATE,
  53.             self::FORMALITY_UPDATE,
  54.             self::FIP_LIST,
  55.             self::FIP_CREATE,
  56.             self::FIP_UPDATE,
  57.             self::FIP_REMOVE,
  58.             self::SPECIAL_REQUEST_STATE_LIST,
  59.             self::SPECIAL_REQUEST_STATE_CREATE,
  60.             self::SPECIAL_REQUEST_STATE_UPDATE,
  61.             self::CGV_LIST,
  62.             self::CGV_CREATE,
  63.             self::CGV_UPDATE,
  64.             self::CGV_DETAIL,
  65.             self::COMPLAINT_LIST,
  66.             self::COMPLAINT_STATE_LIST,
  67.             self::COMPLAINT_STATE_CREATE,
  68.             self::COMPLAINT_STATE_UPDATE,
  69.         ]);
  70.     }
  71.     protected function voteOnAttribute($attribute$subjectTokenInterface $token): bool
  72.     {
  73.         $loggedUser $token->getUser();
  74.         if (!$loggedUser instanceof UserInterface) {
  75.             return false;
  76.         }
  77.         return in_array($attribute$loggedUser->getRoles());
  78.     }
  79. }