<?php
// src/Security/FeatureAccessVoter.php
namespace App\Security;
use Symfony\Component\Security\Core\Authorization\Voter\Voter;
use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
use App\Service\ShopManager; // سرویسی که siteAccess داخلشه
class FeatureAccessVoter extends Voter
{
public const FEATURE_ACCESS = 'FEATURE_ACCESS';
public function __construct(private ShopManager $shopAccessService)
{
}
protected function supports(string $attribute, $subject): bool
{
return $attribute === 'FEATURE_ACCESS' && is_string($subject);
}
protected function voteOnAttribute(string $attribute, $subject, TokenInterface $token): bool
{
// $subject در اینجا featureKey هست
return $this->shopAccessService->siteAccessDeny($subject);
}
}