src/AdminSections/Promotions/PromotionsVoter.php line 16

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace PPAdmin\AdminSections\Promotions;
  3. use PlnaPenezenka\PPSDKBundle\Doctrine\Entity\Administrator;
  4. use PlnaPenezenka\PPSDKBundle\Doctrine\Entity\Common\DefaultEntity;
  5. use PlnaPenezenka\PPSDKBundle\Doctrine\Entity\Promotion;
  6. use PlnaPenezenka\PPSDKBundle\Doctrine\Entity\Web;
  7. use PlnaPenezenka\PPSDKBundle\Service\BoardCouponsImporter;
  8. use PPAdmin\AdminSections\AdminSectionsList;
  9. use PPAdmin\Security\AbstractAdminGridSectionVoter;
  10. /**
  11.  * Edit/create not possible request - the only promotions source should be Board
  12.  * @see BoardCouponsImporter::importCoupons
  13.  */
  14. class PromotionsVoter extends AbstractAdminGridSectionVoter
  15. {
  16.     public static function getSectionIdentifier(): string
  17.     {
  18.         return AdminSectionsList::PROMOTIONS;
  19.     }
  20.     protected static function getSupportedSectionPermissions(): array
  21.     {
  22.         return [
  23.             self::SECTION_PERMISSION_ACCESS,
  24.             self::SECTION_PERMISSION_LIST,
  25.             self::SECTION_PERMISSION_VIEW_DETAIL,
  26.             self::SECTION_PERMISSION_EDIT,
  27.             self::SECTION_PERMISSION_DELETE,
  28.             self::SECTION_PERMISSION_VIEW_AUDIT,
  29.         ];
  30.     }
  31.     function canCreateSectionRecords(Administrator $adminWeb $web): bool
  32.     {
  33.         return false// board import only
  34.     }
  35.     function canEditRecord(Administrator $adminDefaultEntity $record): bool
  36.     {
  37.         /** @var Promotion $record */
  38.         return parent::canEditRecord($admin$record) && $record->external_system === '';
  39.     }
  40.     function canDeleteRecord(Administrator $adminDefaultEntity $record): bool
  41.     {
  42.         /** @var Promotion $record */
  43.         return parent::canDeleteRecord($admin$record) && $record->external_system === '';
  44.     }
  45. }