src/AdminSections/CompetitorShops/CompetitorShopsVoter.php line 14

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace PPAdmin\AdminSections\CompetitorShops;
  3. use PlnaPenezenka\PPSDKBundle\Doctrine\Entity\Administrator;
  4. use PlnaPenezenka\PPSDKBundle\Doctrine\Entity\Common\DefaultEntity;
  5. use PlnaPenezenka\PPSDKBundle\Doctrine\Entity\Competitor\CompetitorShop;
  6. use PlnaPenezenka\PPSDKBundle\Doctrine\Entity\Web;
  7. use PPAdmin\AdminSections\AdminSectionsList;
  8. use PPAdmin\Security\AbstractAdminGridSectionVoter;
  9. class CompetitorShopsVoter extends AbstractAdminGridSectionVoter
  10. {
  11.     const SECTION_PERMISSION_VERIFY_SHOP_MATCH '.verify-shop-match';
  12.     public static function getSectionIdentifier(): string
  13.     {
  14.         return AdminSectionsList::COMPETITORS_SHOPS;
  15.     }
  16.     protected function voteOnSectionPermission(Administrator $adminstring $section_permission$subject null): bool
  17.     {
  18.         return match($section_permission) {
  19.             self::SECTION_PERMISSION_VERIFY_SHOP_MATCH => $this->canVerifyShopMatch($admin$subject),
  20.             default => parent::voteOnSectionPermission($admin$section_permission$subject)
  21.         };
  22.     }
  23.     function canVerifyShopMatch(Administrator $adminCompetitorShop $competitor_shop): bool
  24.     {
  25.         return $this->canEditRecord($admin$competitor_shop) && !$competitor_shop->shop_match_verified;
  26.     }
  27.     function canCreateSectionRecords(Administrator $adminWeb $web): bool
  28.     {
  29.         return false;
  30.     }
  31.     function canDeleteRecord(Administrator $adminDefaultEntity $record): bool
  32.     {
  33.         return false;
  34.     }
  35. }