src/Security/Voter/UpdatePartnerVoter.php line 13
<?phpdeclare(strict_types=1);namespace App\Security\Voter;use App\Entity\Partner;use App\Entity\User;use App\Repository\PartnerUserRepository;use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;use Symfony\Component\Security\Core\Authorization\Voter\Voter;final class UpdatePartnerVoter extends Voter{public function __construct(private readonly PartnerUserRepository $partnerUserRepository){}protected function supports(string $attribute, $subject): bool{if ($attribute === 'update_partner_voter') {return true;}return false;}protected function voteOnAttribute(string $attribute, $subject, TokenInterface $token): bool{if (!$subject instanceof Partner) {return false;}/** @var ?User $loggedUser */$loggedUser = $token->getUser();if (!$loggedUser) {return false;}$userInstitution = $loggedUser->getCurrentRoleInstitution()->getUserInstitution()->getInstitution();if ($subject->getInstitution()->getId() === $userInstitution->getId()) {return true;}return (bool) $this->partnerUserRepository->findOneBy(['user' => $loggedUser , 'partner' => $subject]);}}