src/AdminSections/TipContests/Rounds/TipContestRoundsVoter.php line 11

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace PPAdmin\AdminSections\TipContests\Rounds;
  3. use PlnaPenezenka\PPSDKBundle\Doctrine\Entity\Administrator;
  4. use PlnaPenezenka\PPSDKBundle\Doctrine\Entity\Common\DefaultEntity;
  5. use PPAdmin\AdminSections\AdminSectionsList;
  6. use PPAdmin\AdminSections\TipContests\TipContestsSection;
  7. use PPAdmin\Security\AbstractAdminGridSectionVoter;
  8. class TipContestRoundsVoter extends AbstractAdminGridSectionVoter
  9. {
  10.     const SECTION_PERMISSION_RESOLVE_SCORE '.resolve-score';
  11.     public static function getSectionIdentifier(): string
  12.     {
  13.         return AdminSectionsList::TIP_CONTESTS;
  14.     }
  15.     static function getSubsectionIdentifier(): string
  16.     {
  17.         return TipContestsSection::SUBSECTION_ROUNDS;
  18.     }
  19.     public static function getResolveScorePermission(): string
  20.     {
  21.         return static::getPermission(self::SECTION_PERMISSION_RESOLVE_SCORE);
  22.     }
  23.     protected function voteOnSectionPermission(Administrator $adminstring $section_permission$subject null): bool
  24.     {
  25.         return match($section_permission) {
  26.             static::SECTION_PERMISSION_RESOLVE_SCORE => $this->canResolveRecordScore($admin$subject),
  27.             default => parent::voteOnSectionPermission($admin$section_permission$subject)
  28.         };
  29.     }
  30.     protected function canResolveRecordScore(Administrator $adminDefaultEntity $record): bool
  31.     {
  32.         return
  33.             $this->canAccessSection($admin$this->resolveWeb($record)) &&
  34.             $admin->hasPermission(static::getResolveScorePermission(), $this->resolveWeb($record));
  35.     }
  36. }