src/AdminSections/WebVariants/WebVariantsVoter.php line 11

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace PPAdmin\AdminSections\WebVariants;
  3. use PlnaPenezenka\PPSDKBundle\Doctrine\Entity\Administrator;
  4. use PlnaPenezenka\PPSDKBundle\Doctrine\Entity\Common\DefaultEntity;
  5. use PlnaPenezenka\PPSDKBundle\Doctrine\Entity\Web\WebVariant;
  6. use PPAdmin\AdminSections\AdminSectionsList;
  7. use PPAdmin\Security\AbstractAdminGridSectionVoter;
  8. use PPAdmin\Security\AbstractAdminSectionVoter;
  9. class WebVariantsVoter extends AbstractAdminGridSectionVoter
  10. {
  11.     const SECTION_PERMISSION_EDIT_DEFAULT '.edit-default';
  12.     public static function getSectionIdentifier(): string
  13.     {
  14.         return AdminSectionsList::WEB_VARIANTS;
  15.     }
  16.     public static function getEditDefaultPermission(): string
  17.     {
  18.         return static::getPermission(self::SECTION_PERMISSION_EDIT_DEFAULT);
  19.     }
  20.     function canDeleteRecord(Administrator $adminDefaultEntity $record): bool
  21.     {
  22.         /** @var WebVariant $record */
  23.         return !$record->is_default && parent::canDeleteRecord($admin$record);
  24.     }
  25.     function canEditRecord(Administrator $adminDefaultEntity $record): bool
  26.     {
  27.         /** @var WebVariant $record */
  28.         if(!parent::canEditRecord($admin$record)){
  29.             return false;
  30.         }
  31.         if($record->is_default){
  32.             return $admin->hasPermission(self::getEditDefaultPermission(), $this->resolveWeb($record));
  33.         }
  34.         return true;
  35.     }
  36. }