src/AdminSections/Webs/WebsVoter.php line 14

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace PPAdmin\AdminSections\Webs;
  3. use PlnaPenezenka\PPSDKBundle\Doctrine\Entity\Administrator;
  4. use PlnaPenezenka\PPSDKBundle\Doctrine\Entity\Common\DefaultEntity;
  5. use PlnaPenezenka\PPSDKBundle\Doctrine\Entity\Web;
  6. use PPAdmin\AdminSections\AdminSectionsList;
  7. use PPAdmin\Security\AbstractAdminGridSectionVoter;
  8. use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
  9. class WebsVoter extends AbstractAdminGridSectionVoter
  10. {
  11.     public static function getSectionIdentifier(): string
  12.     {
  13.         return AdminSectionsList::WEBS;
  14.     }
  15.     function isForSuperAdminOnly(): bool
  16.     {
  17.         return true;
  18.     }
  19.     /**
  20.      * @inheritDoc
  21.      */
  22.     protected function voteOnAttribute(string $attribute$subjectTokenInterface $token): bool
  23.     {
  24.         $admin $token->getUser();
  25.         // only SUPER_ADMIN has access to webs management section
  26.         if (
  27.             !($admin instanceof Administrator) ||
  28.             !$admin->isSuperAdmin()
  29.         ) {
  30.             return false;
  31.         }
  32.         return parent::voteOnAttribute($attribute$subject$token);
  33.     }
  34.     function canDeleteRecord(Administrator $adminDefaultEntity $record): bool
  35.     {
  36.         return false;
  37.     }
  38.     function canCreateSectionRecords(Administrator $adminWeb $web): bool
  39.     {
  40.         return false;
  41.     }
  42. }