src/Security/Voter/ShopVoter.php line 11
<?phpnamespace App\Security\Voter;use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;use Symfony\Component\Security\Core\Authorization\Voter\Voter;use Symfony\Component\Security\Core\User\UserInterface;use App\Entity\Shop;use App\Entity\User;class ShopVoter extends Voter{public const EDIT = 'POST_EDIT';public const VIEW = 'POST_VIEW';protected function supports(string $attribute, mixed $subject): bool{return in_array($attribute, [self::EDIT, self::VIEW, 'ADMIN_USER_EDIT'])&& $subject instanceof Shop;}protected function voteOnAttribute(string $attribute, mixed $subject, TokenInterface $token): bool{$user = $token->getUser();if (!$user instanceof UserInterface) {return false;}//dump($token);//dump($user);//dump($subject);if ($subject->getUsers()->getId() === $user->getId()) {return true; // Allow access for ADMIN_USER_EDIT}// ... (check conditions and return true to grant permission) ...switch ($attribute) {case self::EDIT:// logic to determine if the user can EDIT// return true or falsebreak;case self::VIEW:// logic to determine if the user can VIEW// return true or falsebreak;}return false;}}/*namespace App\Security\Voter;use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;use Symfony\Component\Security\Core\Authorization\Voter\Voter;use Symfony\Component\Security\Core\User\UserInterface;use App\Entity\Shop;use App\Entity\User;class ShopVoter extends Voter{// début de mon voter personnalisé pour ne faire apparaître que les// commerces attribués à un commerçant// fin de mon voter personnalisépublic const EDIT = 'POST_EDIT';public const VIEW = 'POST_VIEW';protected function supports(string $attribute, mixed $subject): bool{// replace with your own logic// https://symfony.com/doc/current/security/voters.htmlreturn in_array($attribute, [self::EDIT, self::VIEW])&& $subject instanceof \App\Entity\Shop;}protected function voteOnAttribute(string $attribute, mixed $subject, TokenInterface $token): bool{$user = $token->getUser();// if the user is anonymous, do not grant accessif (!$user instanceof UserInterface) {return false;}// ... (check conditions and return true to grant permission) ...switch ($attribute) {case self::EDIT:// logic to determine if the user can EDIT// return true or falsebreak;case self::VIEW:// logic to determine if the user can VIEW// return true or falsebreak;}return false;}}*/