Create the UserPreferencesLoading middleware

Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
This commit is contained in:
Maurício Meneghini Fauth 2023-08-16 19:09:27 -03:00
parent 1970afc69f
commit 74118f91ee
No known key found for this signature in database
GPG Key ID: 6A16FD38AFC89CC8
2 changed files with 31 additions and 7 deletions

View File

@ -48,8 +48,8 @@ use PhpMyAdmin\Middleware\TokenRequestParamChecking;
use PhpMyAdmin\Middleware\UriSchemeUpdating;
use PhpMyAdmin\Middleware\UrlParamsSetting;
use PhpMyAdmin\Middleware\UrlRedirection;
use PhpMyAdmin\Middleware\UserPreferencesLoading;
use PhpMyAdmin\Routing\Routing;
use PhpMyAdmin\Theme\ThemeManager;
use PhpMyAdmin\Tracking\Tracker;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
@ -132,6 +132,7 @@ class Application
$requestHandler->add(new ResponseRendererLoading($this->config));
$requestHandler->add(new TokenMismatchChecking());
$requestHandler->add(new ProfilingChecking());
$requestHandler->add(new UserPreferencesLoading($this->config));
$runner = new RequestHandlerRunner(
$requestHandler,
@ -156,12 +157,6 @@ class Application
$settings = $this->config->getSettings();
/** @var ThemeManager $themeManager */
$themeManager = $container->get(ThemeManager::class);
// load user preferences
$this->config->loadUserPreferences($themeManager);
/* Tell tracker that it can actually work */
Tracker::enable();

View File

@ -0,0 +1,29 @@
<?php
declare(strict_types=1);
namespace PhpMyAdmin\Middleware;
use PhpMyAdmin\Config;
use PhpMyAdmin\Core;
use PhpMyAdmin\Theme\ThemeManager;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\MiddlewareInterface;
use Psr\Http\Server\RequestHandlerInterface;
final class UserPreferencesLoading implements MiddlewareInterface
{
public function __construct(private readonly Config $config)
{
}
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
{
/** @var ThemeManager $themeManager */
$themeManager = Core::getContainerBuilder()->get(ThemeManager::class);
$this->config->loadUserPreferences($themeManager);
return $handler->handle($request);
}
}