src/AdminSections/TipContests/TipContestsVoter.php line 10

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace PPAdmin\AdminSections\TipContests;
  3. use PlnaPenezenka\PPSDKBundle\Doctrine\Entity\Administrator;
  4. use PlnaPenezenka\PPSDKBundle\Doctrine\Entity\Common\DefaultEntity;
  5. use PPAdmin\AdminSections\AdminSectionsList;
  6. use PPAdmin\Security\AbstractAdminGridSectionVoter;
  7. class TipContestsVoter extends AbstractAdminGridSectionVoter
  8. {
  9.     const SECTION_PERMISSION_TIPS '.tips'// can view tips
  10.     public static function getSectionIdentifier(): string
  11.     {
  12.         return AdminSectionsList::TIP_CONTESTS;
  13.     }
  14.     public static function getViewTipsPermission(): string
  15.     {
  16.         return static::getPermission(self::SECTION_PERMISSION_TIPS);
  17.     }
  18.     protected function voteOnSectionPermission(Administrator $adminstring $section_permission$subject null): bool
  19.     {
  20.         return match ($section_permission) {
  21.             static::SECTION_PERMISSION_TIPS => $this->canViewContestTips($admin$subject),
  22.             default => parent::voteOnSectionPermission($admin$section_permission$subject)
  23.         };
  24.     }
  25.     function canViewContestTips(Administrator $adminDefaultEntity $record): bool
  26.     {
  27.         return
  28.             $this->canViewSectionRecord($admin$this->resolveWeb($record)) &&
  29.             $admin->hasPermission(static::getViewTipsPermission(), $this->resolveWeb($record));
  30.     }
  31. }