src/Security/Voter/BusinessMonitorVoter.php line 8

Open in your IDE?
  1. <?php
  2. namespace App\Security\Voter;
  3. use App\Entity\BusinessMonitor;
  4. use Symfony\Component\Security\Core\User\UserInterface;
  5. class BusinessMonitorVoter extends AbstractDeepVoter
  6. {
  7.     public static $listAttribute 'list_business_monitors';
  8.     public static $creatAttribute 'create_business_monitor';
  9.     protected function listAttribute(): string
  10.     {
  11.         return self::$listAttribute;
  12.     }
  13.     protected function createAttribute(): string
  14.     {
  15.         return self::$creatAttribute;
  16.     }
  17.     protected function isSupportedSubject(object $subject): bool
  18.     {
  19.         return $subject instanceof BusinessMonitor;
  20.     }
  21.     protected function canList(UserInterface $user): bool
  22.     {
  23.         return $user->isAnAdmin() || $user->isCompanyDirector();
  24.     }
  25.     protected function canCreate(UserInterface $user): bool
  26.     {
  27.         return $user->isMainAdmin();
  28.     }
  29.     protected function canRead(UserInterface $user): bool
  30.     {
  31.         return $user->isAnAdmin() || $user->isCompanyDirector();
  32.     }
  33.     protected function canUpdate(UserInterface $user): bool
  34.     {
  35.         return $user->isMainAdmin();
  36.     }
  37.     protected function canDelete(UserInterface $user): bool
  38.     {
  39.         return $user->isMainAdmin();
  40.     }
  41. }