mirror of
https://github.com/Sylius/Sylius.git
synced 2026-07-05 20:57:12 +00:00
Fix after review
This commit is contained in:
parent
6920a9dfff
commit
29d0ce9614
2 changed files with 18 additions and 5 deletions
|
|
@ -50,7 +50,10 @@
|
|||
</service>
|
||||
|
||||
<service id="sylius.twig.extension.security_csrf" class="Sylius\Bundle\CoreBundle\Twig\SecurityCsrfExtension" public="false">
|
||||
<argument type="service" id="service_container" />
|
||||
<argument>%sylius_admin.security.csrf_parameter%</argument>
|
||||
<argument>%sylius_admin.security.csrf_token_id%</argument>
|
||||
<argument>%sylius_shop.security.csrf_parameter%</argument>
|
||||
<argument>%sylius_shop.security.csrf_token_id%</argument>
|
||||
<tag name="twig.extension" />
|
||||
</service>
|
||||
</services>
|
||||
|
|
|
|||
|
|
@ -13,14 +13,16 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Bundle\CoreBundle\Twig;
|
||||
|
||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||
use Twig\Extension\AbstractExtension;
|
||||
use Twig\TwigFunction;
|
||||
|
||||
final class SecurityCsrfExtension extends AbstractExtension
|
||||
{
|
||||
public function __construct(
|
||||
private readonly ContainerInterface $container,
|
||||
private readonly string $adminCsrfParameter,
|
||||
private readonly string $adminCsrfTokenId,
|
||||
private readonly string $shopCsrfParameter,
|
||||
private readonly string $shopCsrfTokenId,
|
||||
) {
|
||||
}
|
||||
|
||||
|
|
@ -34,11 +36,19 @@ final class SecurityCsrfExtension extends AbstractExtension
|
|||
|
||||
public function getCsrfParameter(string $section): string
|
||||
{
|
||||
return (string) $this->container->getParameter(sprintf('sylius_%s.security.csrf_parameter', $section));
|
||||
return match ($section) {
|
||||
'admin' => $this->adminCsrfParameter,
|
||||
'shop' => $this->shopCsrfParameter,
|
||||
default => throw new \InvalidArgumentException(sprintf('Unknown section "%s". Expected "admin" or "shop".', $section)),
|
||||
};
|
||||
}
|
||||
|
||||
public function getCsrfTokenId(string $section): string
|
||||
{
|
||||
return (string) $this->container->getParameter(sprintf('sylius_%s.security.csrf_token_id', $section));
|
||||
return match ($section) {
|
||||
'admin' => $this->adminCsrfTokenId,
|
||||
'shop' => $this->shopCsrfTokenId,
|
||||
default => throw new \InvalidArgumentException(sprintf('Unknown section "%s". Expected "admin" or "shop".', $section)),
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue