src/Voter/AdvAutomationVoter.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 AdvAutomationVoter extends Voter
  7. {
  8.     const EMAIL_LIST "ADV_AUTOMATION_EMAIL_LIST";
  9.     const EMAIL_CREATE "ADV_AUTOMATION_EMAIL_CREATE";
  10.     const EMAIL_UPDATE "ADV_AUTOMATION_EMAIL_UPDATE";
  11.     const EMAIL_TEMPLATE_LIST "ADV_AUTOMATION_EMAIL_TEMPLATE_LIST";
  12.     const EMAIL_TEMPLATE_CREATE "ADV_AUTOMATION_EMAIL_TEMPLATE_CREATE";
  13.     const EMAIL_TEMPLATE_UPDATE "ADV_AUTOMATION_EMAIL_TEMPLATE_UPDATE";
  14.     const NUMBER_OF_UNREAD_MAILS_LIST "ADV_AUTOMATION_NUMBER_OF_UNREAD_MAILS_LIST";
  15.     const NUMBER_OF_UNREAD_MAILS_CREATE "ADV_AUTOMATION_NUMBER_OF_UNREAD_MAILS_CREATE";
  16.     const NUMBER_OF_UNREAD_MAILS_UPDATE "ADV_AUTOMATION_NUMBER_OF_UNREAD_MAILS_UPDATE";
  17.     const ALERT_LIST "ADV_AUTOMATION_ALERT_LIST";
  18.     const NOTIFICATION_LIST "ADV_AUTOMATION_NOTIFICATION_LIST";
  19.     protected function supports($attribute$subject): bool
  20.     {
  21.         return in_array($attribute, [
  22.             self::EMAIL_LIST,
  23.             self::EMAIL_CREATE,
  24.             self::EMAIL_UPDATE,
  25.             self::EMAIL_TEMPLATE_LIST,
  26.             self::EMAIL_TEMPLATE_CREATE,
  27.             self::EMAIL_TEMPLATE_UPDATE,
  28.             self::NUMBER_OF_UNREAD_MAILS_LIST,
  29.             self::NUMBER_OF_UNREAD_MAILS_CREATE,
  30.             self::NUMBER_OF_UNREAD_MAILS_UPDATE,
  31.             self::ALERT_LIST,
  32.             self::NOTIFICATION_LIST,
  33.         ]);
  34.     }
  35.     protected function voteOnAttribute($attribute$subjectTokenInterface $token): bool
  36.     {
  37.         $loggedUser $token->getUser();
  38.         if (!$loggedUser instanceof UserInterface) {
  39.             return false;
  40.         }
  41.         return in_array($attribute$loggedUser->getRoles());
  42.     }
  43. }