Bien sur, les Voters sont faits pour cela :)
Regarde la signature de la méthode suivante dans un voter (https://symfony.com/doc/current/security/voters.html#creating-the-custom-voter):
protected function voteOnAttribute($attribute, $infrastructure, TokenInterface $token)
- $attribute, c'est ton action (par exemple 'EDIT')
- $infrastructure, c'est l'entité sur laquelle tu souhaite effectuer le test (dans ton cas une instance d'Infrastructure)
- $token c'est un token, d'où tu peux récupérer le user ($user = $token->getUser();)
Donc tu peux faire le test :
- $token c'est un token, d'où tu peux récupérer le user ($user = $token->getUser();)
En partant du principe que dans Infrastructure tu as une propriété $user ManyToOne (ou OneToOne) vers User (User qui implémente UserInterface)