<?php
declare(strict_types=1);
namespace VioB2BLogin\Storefront\Page;
use Shopware\Core\System\SalesChannel\SalesChannelContext;
use Shopware\Storefront\Page\GenericPageLoaderInterface;
use Shopware\Storefront\Page\Page;
use Symfony\Component\HttpFoundation\Request;
use VioB2BLogin\Core\Services\PrivilegeService;
class GenericB2BPageLoader implements GenericPageLoaderInterface
{
private PrivilegeService $privilegeService;
private GenericPageLoaderInterface $genericPageLoader;
public function __construct(
GenericPageLoaderInterface $genericPageLoader,
PrivilegeService $privilegeService
)
{
$this->genericPageLoader = $genericPageLoader;
$this->privilegeService = $privilegeService;
}
public function load(Request $request, SalesChannelContext $context): Page
{
$page = $this->genericPageLoader->load($request, $context);
/** @var PrivilegedPage $page */
$page = PrivilegedPage::createFrom($page);
$page->setPrivileges($this->privilegeService->getPrivilegesOfUser($context));
return $page;
}
}