src/Security/Voter/ApiLabelOwnerVoter.php line 13
<?phpdeclare(strict_types=1);namespace App\Security\Voter;use App\Entity\Label;use App\Entity\User;use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;use Symfony\Component\Security\Core\Authorization\Voter\Voter;use App\Enum\RoleEnum;final class ApiLabelOwnerVoter extends Voter{protected function supports(string $attribute, $subject): bool{if ($attribute === 'api_label_owner_voter') {return true;}return false;}protected function voteOnAttribute(string $attribute, $subject, TokenInterface $token): bool{if (!$subject instanceof Label) {return false;}/** @var ?User $loggedUser */$loggedUser = $token->getUser();if (!$loggedUser) {return false;}$labelInstitution = $subject->getInstitution()->getId();$userInstitution = $loggedUser->getCurrentRoleInstitution()->getUserInstitution()->getInstitution()->getId();$userRole = $loggedUser->getCurrentRoleInstitution()->getRole()->getKeyName();return $userInstitution === $labelInstitution && $userRole === RoleEnum::GENERAL_MANAGER;}}