src/AdminSections/CustomCashbackCoefficient/CustomCashbackCoefficientsVoter.php line 12

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace PPAdmin\AdminSections\CustomCashbackCoefficient;
  3. use PlnaPenezenka\PPSDKBundle\Doctrine\Entity\Administrator;
  4. use PlnaPenezenka\PPSDKBundle\Doctrine\Entity\CustomCashbackCoefficient;
  5. use PPAdmin\AdminSections\AdminSectionsList;
  6. use PPAdmin\Security\AbstractAdminGridSectionVoter;
  7. class CustomCashbackCoefficientsVoter extends AbstractAdminGridSectionVoter
  8. {
  9.     const SECTION_PERMISSION_SET_FOR_ALL_USERS '.set-for-all-users';
  10.     public static function getSectionIdentifier(): string
  11.     {
  12.         return AdminSectionsList::CUSTOM_CASHBACK_COEFFICIENTS;
  13.     }
  14.     public static function getSetForAllUsersPermission(): string
  15.     {
  16.         return static::getPermission(self::SECTION_PERMISSION_SET_FOR_ALL_USERS);
  17.     }
  18.     protected function voteOnSectionPermission(Administrator $adminstring $section_permission$subject null): bool
  19.     {
  20.         return match($section_permission) {
  21.             self::SECTION_PERMISSION_SET_FOR_ALL_USERS => $this->canSetForAllUsers($admin$subject),
  22.             default => parent::voteOnSectionPermission($admin$section_permission$subject)
  23.         };
  24.     }
  25.     function canSetForAllUsers(Administrator $adminCustomCashbackCoefficient $custom_cashback_coefficient): bool
  26.     {
  27.         return
  28.             !$custom_cashback_coefficient->user &&
  29.             $this->canEditRecord($admin$custom_cashback_coefficient) &&
  30.             $admin->hasPermission(static::getSetForAllUsersPermission(), $this->resolveWeb($custom_cashback_coefficient))
  31.         ;
  32.     }
  33. }