<?php
declare(strict_types=1);
namespace She\AdminUrl;
use Shopware\Administration\Controller\AdministrationController;
use Shopware\Core\Framework\Plugin;
use Shopware\Core\PlatformRequest;
use Shopware\Core\System\SystemConfig\SystemConfigService;
use Symfony\Component\Routing\Loader\Configurator\RoutingConfigurator;
class SheAdminUrl extends Plugin
{
public const CONFIG_NAME = 'SheAdminUrl.config.adminUrl';
public function configureRouteOverwrites(RoutingConfigurator $routes, string $environment): void
{
if (!$this->isActive()) {
return;
}
$systemConfigService = $this->container->get(SystemConfigService::class);
if (!$systemConfigService instanceof SystemConfigService) {
return;
}
$url = $systemConfigService->get(self::CONFIG_NAME);
if ('' === $url) {
return;
}
if (!\is_string($url)) {
return;
}
$routes
->collection()
->add('administration.index', $url)
->controller(AdministrationController::class . '::index')
->defaults([
'auth_required' => false,
PlatformRequest::ATTRIBUTE_ROUTE_SCOPE => ['administration'],
])
->methods(['GET']);
}
}