vendor/sksso/http-base/src/Security/Voter/SendMessageVoter.php line 9
<?php
namespace SKSSO\HTTP\Bundle\BaseBundle\Security\Voter;
use SKSSO\HTTP\Bundle\BaseBundle\Entity\EngedelyLista;
use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
use Symfony\Component\Security\Core\Authorization\Voter\Voter;
class SendMessageVoter extends Voter
{
public function supportsType(string $subjectType): bool
{
return $subjectType == EngedelyLista::class;
}
public function supportsAttribute(string $attribute): bool
{
return "SendMessage";
}
protected function supports(string $attribute, mixed $subject): bool
{
return $this->supportsAttribute($attribute) && $this->supportsType(get_debug_type($subject));
}
protected function voteOnAttribute(string $attribute, mixed $subject, TokenInterface $token): bool
{
$user = $token->getUser();
if(!($user instanceof EngedelyLista)){
return false;
}
if(!($subject instanceof EngedelyLista)){
return false;
}
$kuldoCsoportok = $user->getKuldo();
$fogadoCsoportok = $subject->getFogado();
foreach($kuldoCsoportok as $kuldoCsoport){
if($fogadoCsoportok->contains($kuldoCsoport)) return true;
}
return false;
}
}