vendor/sksso/http-base/src/Security/Voter/SendMessageVoter.php line 9

  1. <?php
  2. namespace SKSSO\HTTP\Bundle\BaseBundle\Security\Voter;
  3. use SKSSO\HTTP\Bundle\BaseBundle\Entity\EngedelyLista;
  4. use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
  5. use Symfony\Component\Security\Core\Authorization\Voter\Voter;
  6. class SendMessageVoter extends Voter
  7. {
  8.     public function supportsType(string $subjectType): bool
  9.     {
  10.         return $subjectType == EngedelyLista::class;
  11.     }
  12.     public function supportsAttribute(string $attribute): bool
  13.     {
  14.         return "SendMessage";
  15.     }
  16.     protected function supports(string $attributemixed $subject): bool
  17.     {
  18.         return $this->supportsAttribute($attribute) && $this->supportsType(get_debug_type($subject));
  19.     }
  20.     protected function voteOnAttribute(string $attributemixed $subjectTokenInterface $token): bool
  21.     {
  22.         $user $token->getUser();
  23.         if(!($user instanceof EngedelyLista)){
  24.             return false;
  25.         }
  26.         if(!($subject instanceof EngedelyLista)){
  27.             return false;
  28.         }
  29.         $kuldoCsoportok $user->getKuldo();
  30.         $fogadoCsoportok $subject->getFogado();
  31.         foreach($kuldoCsoportok as $kuldoCsoport){
  32.             if($fogadoCsoportok->contains($kuldoCsoport)) return true;
  33.         }
  34.         return false;
  35.     }
  36. }