src/Voter/KycInfoSubmittedVoter.php line 10

Open in your IDE?
  1. <?php
  2. // src/Voter/CustomPermissionVoter.php
  3. namespace App\Voter;
  4. use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
  5. use Symfony\Component\Security\Core\Authorization\Voter\Voter;
  6. use App\Entity\KycVerificationStatus;
  7. class KycInfoSubmittedVoter extends Voter
  8. {
  9.     const PERMISSION_NAME 'KYC_INFO_SUBMITTED';
  10.     protected function supports($attribute$subject)
  11.     {
  12.         return $attribute === self::PERMISSION_NAME;
  13.     }
  14.     protected function voteOnAttribute($attribute$subjectTokenInterface $token)
  15.     {
  16.         $user $token->getUser();
  17.         return in_array('ROLE_ADMIN'$token->getRoleNames()) || (in_array('ROLE_CLIENT'$token->getRoleNames()) && $user && ( $user->getKycVerificationStatus()?->getId() == KycVerificationStatus::VERIFIED || $user->getKycVerificationStatus()?->getId() == KycVerificationStatus::WAITING_FOR_VALIDATION));
  18.     }
  19.     
  20. }