Pass ServerRequest object directly to setup controllers
Instead of passing an array of parameters. Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
This commit is contained in:
parent
ae625702f1
commit
9cac3a9bcc
@ -4,22 +4,15 @@ declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Controllers\Setup;
|
||||
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Setup\ConfigGenerator;
|
||||
|
||||
use function is_string;
|
||||
|
||||
class ConfigController extends AbstractController
|
||||
{
|
||||
/**
|
||||
* @param mixed[] $params Request parameters
|
||||
*
|
||||
* @return string HTML
|
||||
*/
|
||||
public function __invoke(array $params): string
|
||||
public function __invoke(ServerRequest $request): string
|
||||
{
|
||||
$formset = isset($params['formset']) && is_string($params['formset']) ? $params['formset'] : '';
|
||||
$eol = isset($params['eol']) && $params['eol'] === 'win' ? 'win' : 'unix';
|
||||
|
||||
$pages = $this->getPages();
|
||||
|
||||
static $hasCheckPageRefresh = false;
|
||||
@ -30,11 +23,22 @@ class ConfigController extends AbstractController
|
||||
$config = ConfigGenerator::getConfigFile($this->config);
|
||||
|
||||
return $this->template->render('setup/config/index', [
|
||||
'formset' => $formset,
|
||||
'formset' => $this->getFormSetParam($request->getQueryParam('formset')),
|
||||
'pages' => $pages,
|
||||
'eol' => $eol,
|
||||
'eol' => $this->getEolParam($request->getQueryParam('eol')),
|
||||
'config' => $config,
|
||||
'has_check_page_refresh' => $hasCheckPageRefresh,
|
||||
]);
|
||||
}
|
||||
|
||||
private function getFormSetParam(mixed $formSetParam): string
|
||||
{
|
||||
return is_string($formSetParam) ? $formSetParam : '';
|
||||
}
|
||||
|
||||
/** @psalm-return 'win'|'unix' */
|
||||
private function getEolParam(mixed $eolParam): string
|
||||
{
|
||||
return $eolParam === 'win' ? 'win' : 'unix';
|
||||
}
|
||||
}
|
||||
|
||||
@ -5,6 +5,7 @@ declare(strict_types=1);
|
||||
namespace PhpMyAdmin\Controllers\Setup;
|
||||
|
||||
use PhpMyAdmin\Config\Forms\Setup\SetupFormList;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\LanguageManager;
|
||||
use PhpMyAdmin\Setup\FormProcessing;
|
||||
|
||||
@ -15,18 +16,13 @@ use function ob_start;
|
||||
|
||||
class FormController extends AbstractController
|
||||
{
|
||||
/**
|
||||
* @param mixed[] $params Request parameters
|
||||
*
|
||||
* @return string HTML
|
||||
*/
|
||||
public function __invoke(array $params): string
|
||||
public function __invoke(ServerRequest $request): string
|
||||
{
|
||||
$pages = $this->getPages();
|
||||
|
||||
$formset = isset($params['formset']) && is_string($params['formset']) ? $params['formset'] : '';
|
||||
$formSet = $this->getFormSetParam($request->getQueryParam('formset'));
|
||||
|
||||
$formClass = SetupFormList::get($formset);
|
||||
$formClass = SetupFormList::get($formSet);
|
||||
if ($formClass === null) {
|
||||
return $this->template->render('error/generic', [
|
||||
'lang' => $GLOBALS['lang'] ?? 'en',
|
||||
@ -41,10 +37,15 @@ class FormController extends AbstractController
|
||||
$page = ob_get_clean();
|
||||
|
||||
return $this->template->render('setup/form/index', [
|
||||
'formset' => $formset,
|
||||
'formset' => $formSet,
|
||||
'pages' => $pages,
|
||||
'name' => $form::getName(),
|
||||
'page' => $page,
|
||||
]);
|
||||
}
|
||||
|
||||
private function getFormSetParam(mixed $formSetParam): string
|
||||
{
|
||||
return is_string($formSetParam) ? $formSetParam : '';
|
||||
}
|
||||
}
|
||||
|
||||
@ -6,6 +6,7 @@ namespace PhpMyAdmin\Controllers\Setup;
|
||||
|
||||
use PhpMyAdmin\Config;
|
||||
use PhpMyAdmin\Config\ServerConfigChecks;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\LanguageManager;
|
||||
use PhpMyAdmin\Setup\Index;
|
||||
|
||||
@ -16,22 +17,15 @@ use function is_string;
|
||||
|
||||
class HomeController extends AbstractController
|
||||
{
|
||||
/**
|
||||
* @param mixed[] $params Request parameters
|
||||
*
|
||||
* @return string HTML
|
||||
*/
|
||||
public function __invoke(array $params): string
|
||||
public function __invoke(ServerRequest $request): string
|
||||
{
|
||||
$formset = isset($params['formset']) && is_string($params['formset']) ? $params['formset'] : '';
|
||||
|
||||
$pages = $this->getPages();
|
||||
|
||||
// message handling
|
||||
Index::messagesBegin();
|
||||
|
||||
// Check phpMyAdmin version
|
||||
if (isset($params['version_check'])) {
|
||||
if ($request->hasQueryParam('version_check')) {
|
||||
Index::versionCheck();
|
||||
}
|
||||
|
||||
@ -86,7 +80,7 @@ class HomeController extends AbstractController
|
||||
}
|
||||
|
||||
return $this->template->render('setup/home/index', [
|
||||
'formset' => $formset,
|
||||
'formset' => $this->getFormSetParam($request->getQueryParam('formset')),
|
||||
'languages' => $languages,
|
||||
'messages' => $messages,
|
||||
'server_count' => $this->config->getServerCount(),
|
||||
@ -98,4 +92,9 @@ class HomeController extends AbstractController
|
||||
: (Config::getInstance()->get('PMA_IS_WINDOWS') ? 'win' : 'unix'),
|
||||
]);
|
||||
}
|
||||
|
||||
private function getFormSetParam(mixed $formSetParam): string
|
||||
{
|
||||
return is_string($formSetParam) ? $formSetParam : '';
|
||||
}
|
||||
}
|
||||
|
||||
@ -56,24 +56,17 @@ final class MainController implements InvocableController
|
||||
}
|
||||
|
||||
if ($page === 'form') {
|
||||
return $response->write((new FormController($GLOBALS['ConfigFile'], $this->template))([
|
||||
'formset' => $request->getQueryParam('formset'),
|
||||
]));
|
||||
return $response->write((new FormController($GLOBALS['ConfigFile'], $this->template))($request));
|
||||
}
|
||||
|
||||
if ($page === 'config') {
|
||||
return $response->write((new ConfigController($GLOBALS['ConfigFile'], $this->template))([
|
||||
'formset' => $request->getQueryParam('formset'),
|
||||
'eol' => $request->getQueryParam('eol'),
|
||||
]));
|
||||
return $response->write((new ConfigController($GLOBALS['ConfigFile'], $this->template))($request));
|
||||
}
|
||||
|
||||
if ($page === 'servers') {
|
||||
$controller = new ServersController($GLOBALS['ConfigFile'], $this->template);
|
||||
/** @var mixed $mode */
|
||||
$mode = $request->getQueryParam('mode');
|
||||
if ($mode === 'remove' && $request->isPost()) {
|
||||
$controller->destroy(['id' => $request->getQueryParam('id')]);
|
||||
if ($request->getQueryParam('mode') === 'remove' && $request->isPost()) {
|
||||
$controller->destroy($request);
|
||||
$response = $response->withStatus(StatusCodeInterface::STATUS_FOUND);
|
||||
|
||||
return $response->withHeader(
|
||||
@ -82,16 +75,9 @@ final class MainController implements InvocableController
|
||||
);
|
||||
}
|
||||
|
||||
return $response->write($controller->index([
|
||||
'formset' => $request->getQueryParam('formset'),
|
||||
'mode' => $mode,
|
||||
'id' => $request->getQueryParam('id'),
|
||||
]));
|
||||
return $response->write($controller->index($request));
|
||||
}
|
||||
|
||||
return $response->write((new HomeController($GLOBALS['ConfigFile'], $this->template))([
|
||||
'formset' => $request->getQueryParam('formset'),
|
||||
'version_check' => $request->getQueryParam('version_check'),
|
||||
]));
|
||||
return $response->write((new HomeController($GLOBALS['ConfigFile'], $this->template))($request));
|
||||
}
|
||||
}
|
||||
|
||||
@ -5,6 +5,7 @@ declare(strict_types=1);
|
||||
namespace PhpMyAdmin\Controllers\Setup;
|
||||
|
||||
use PhpMyAdmin\Config\Forms\Setup\ServersForm;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Setup\FormProcessing;
|
||||
|
||||
use function in_array;
|
||||
@ -15,19 +16,10 @@ use function ob_start;
|
||||
|
||||
class ServersController extends AbstractController
|
||||
{
|
||||
/**
|
||||
* @param mixed[] $params Request parameters
|
||||
*
|
||||
* @return string HTML
|
||||
*/
|
||||
public function index(array $params): string
|
||||
public function index(ServerRequest $request): string
|
||||
{
|
||||
$formset = isset($params['formset']) && is_string($params['formset']) ? $params['formset'] : '';
|
||||
$id = isset($params['id']) && is_numeric($params['id']) && (int) $params['id'] >= 1 ? (int) $params['id'] : 0;
|
||||
$mode = '';
|
||||
if (isset($params['mode']) && in_array($params['mode'], ['add', 'edit', 'revert'], true)) {
|
||||
$mode = $params['mode'];
|
||||
}
|
||||
$id = $this->getIdParam($request->getQueryParam('id'));
|
||||
$mode = $this->getModeParam($request->getQueryParam('mode'));
|
||||
|
||||
$pages = $this->getPages();
|
||||
|
||||
@ -42,7 +34,7 @@ class ServersController extends AbstractController
|
||||
$page = ob_get_clean();
|
||||
|
||||
return $this->template->render('setup/servers/index', [
|
||||
'formset' => $formset,
|
||||
'formset' => $this->getFormSetParam($request->getQueryParam('formset')),
|
||||
'pages' => $pages,
|
||||
'has_server' => $hasServer,
|
||||
'mode' => $mode,
|
||||
@ -52,17 +44,37 @@ class ServersController extends AbstractController
|
||||
]);
|
||||
}
|
||||
|
||||
/** @param mixed[] $params Request parameters */
|
||||
public function destroy(array $params): void
|
||||
public function destroy(ServerRequest $request): void
|
||||
{
|
||||
$id = isset($params['id']) && is_numeric($params['id']) && (int) $params['id'] >= 1 ? (int) $params['id'] : 0;
|
||||
|
||||
$id = $this->getIdParam($request->getQueryParam('id'));
|
||||
$hasServer = $id >= 1 && $this->config->get('Servers/' . $id) !== null;
|
||||
|
||||
if (! $hasServer) {
|
||||
return;
|
||||
}
|
||||
|
||||
$this->config->removeServer($id);
|
||||
}
|
||||
|
||||
private function getFormSetParam(mixed $formSetParam): string
|
||||
{
|
||||
return is_string($formSetParam) ? $formSetParam : '';
|
||||
}
|
||||
|
||||
/** @psalm-return 'add'|'edit'|'revert'|'' */
|
||||
private function getModeParam(mixed $modeParam): string
|
||||
{
|
||||
return in_array($modeParam, ['add', 'edit', 'revert'], true) ? $modeParam : '';
|
||||
}
|
||||
|
||||
/** @psalm-return int<0, max> */
|
||||
private function getIdParam(mixed $idParam): int
|
||||
{
|
||||
if (! is_numeric($idParam)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
$id = (int) $idParam;
|
||||
|
||||
return $id >= 1 ? $id : 0;
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user