Move Routing::getCurrentRoute to ServerRequest
The route is retrieved from the request, so it makes sense to move the method to the Http\ServerRequest class. Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
This commit is contained in:
parent
e7487227e5
commit
eb3703882b
@ -37,9 +37,4 @@ require AUTOLOAD_FILE;
|
||||
|
||||
Common::run();
|
||||
|
||||
Routing::callControllerForRoute(
|
||||
Common::getRequest(),
|
||||
Routing::getCurrentRoute(),
|
||||
Routing::getDispatcher(),
|
||||
$GLOBALS['containerBuilder']
|
||||
);
|
||||
Routing::callControllerForRoute(Common::getRequest(), Routing::getDispatcher(), $GLOBALS['containerBuilder']);
|
||||
|
||||
@ -93,8 +93,7 @@ final class Common
|
||||
$GLOBALS['token_mismatch'] = $GLOBALS['token_mismatch'] ?? null;
|
||||
|
||||
$request = self::getRequest();
|
||||
|
||||
$route = Routing::getCurrentRoute();
|
||||
$route = $request->getRoute();
|
||||
|
||||
if ($route === '/import-status') {
|
||||
$GLOBALS['isMinimumCommon'] = true;
|
||||
|
||||
@ -9,8 +9,8 @@ use PhpMyAdmin\Config\ConfigFile;
|
||||
use PhpMyAdmin\Config\Forms\User\ExportForm;
|
||||
use PhpMyAdmin\ConfigStorage\Relation;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Routing;
|
||||
use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\TwoFactor;
|
||||
use PhpMyAdmin\Url;
|
||||
@ -43,7 +43,7 @@ class ExportController extends AbstractController
|
||||
$this->config = $config;
|
||||
}
|
||||
|
||||
public function __invoke(): void
|
||||
public function __invoke(ServerRequest $request): void
|
||||
{
|
||||
$GLOBALS['cf'] = $GLOBALS['cf'] ?? null;
|
||||
$GLOBALS['error'] = $GLOBALS['error'] ?? null;
|
||||
@ -51,8 +51,6 @@ class ExportController extends AbstractController
|
||||
$GLOBALS['hash'] = $GLOBALS['hash'] ?? null;
|
||||
$GLOBALS['server'] = $GLOBALS['server'] ?? null;
|
||||
|
||||
$route = Routing::getCurrentRoute();
|
||||
|
||||
$GLOBALS['cf'] = new ConfigFile($this->config->baseSettings);
|
||||
$this->userPreferences->pageInit($GLOBALS['cf']);
|
||||
|
||||
@ -92,7 +90,7 @@ class ExportController extends AbstractController
|
||||
$relationParameters = $this->relation->getRelationParameters();
|
||||
|
||||
$this->render('preferences/header', [
|
||||
'route' => $route,
|
||||
'route' => $request->getRoute(),
|
||||
'is_saved' => ! empty($_GET['saved']),
|
||||
'has_config_storage' => $relationParameters->userPreferencesFeature !== null,
|
||||
]);
|
||||
|
||||
@ -9,8 +9,8 @@ use PhpMyAdmin\Config\ConfigFile;
|
||||
use PhpMyAdmin\Config\Forms\User\FeaturesForm;
|
||||
use PhpMyAdmin\ConfigStorage\Relation;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Routing;
|
||||
use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\TwoFactor;
|
||||
use PhpMyAdmin\Url;
|
||||
@ -43,7 +43,7 @@ class FeaturesController extends AbstractController
|
||||
$this->config = $config;
|
||||
}
|
||||
|
||||
public function __invoke(): void
|
||||
public function __invoke(ServerRequest $request): void
|
||||
{
|
||||
$GLOBALS['cf'] = $GLOBALS['cf'] ?? null;
|
||||
$GLOBALS['error'] = $GLOBALS['error'] ?? null;
|
||||
@ -51,8 +51,6 @@ class FeaturesController extends AbstractController
|
||||
$GLOBALS['hash'] = $GLOBALS['hash'] ?? null;
|
||||
$GLOBALS['server'] = $GLOBALS['server'] ?? null;
|
||||
|
||||
$route = Routing::getCurrentRoute();
|
||||
|
||||
$GLOBALS['cf'] = new ConfigFile($this->config->baseSettings);
|
||||
$this->userPreferences->pageInit($GLOBALS['cf']);
|
||||
|
||||
@ -92,7 +90,7 @@ class FeaturesController extends AbstractController
|
||||
$relationParameters = $this->relation->getRelationParameters();
|
||||
|
||||
$this->render('preferences/header', [
|
||||
'route' => $route,
|
||||
'route' => $request->getRoute(),
|
||||
'is_saved' => ! empty($_GET['saved']),
|
||||
'has_config_storage' => $relationParameters->userPreferencesFeature !== null,
|
||||
]);
|
||||
|
||||
@ -9,8 +9,8 @@ use PhpMyAdmin\Config\ConfigFile;
|
||||
use PhpMyAdmin\Config\Forms\User\ImportForm;
|
||||
use PhpMyAdmin\ConfigStorage\Relation;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Routing;
|
||||
use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\TwoFactor;
|
||||
use PhpMyAdmin\Url;
|
||||
@ -43,7 +43,7 @@ class ImportController extends AbstractController
|
||||
$this->config = $config;
|
||||
}
|
||||
|
||||
public function __invoke(): void
|
||||
public function __invoke(ServerRequest $request): void
|
||||
{
|
||||
$GLOBALS['cf'] = $GLOBALS['cf'] ?? null;
|
||||
$GLOBALS['error'] = $GLOBALS['error'] ?? null;
|
||||
@ -51,8 +51,6 @@ class ImportController extends AbstractController
|
||||
$GLOBALS['hash'] = $GLOBALS['hash'] ?? null;
|
||||
$GLOBALS['server'] = $GLOBALS['server'] ?? null;
|
||||
|
||||
$route = Routing::getCurrentRoute();
|
||||
|
||||
$GLOBALS['cf'] = new ConfigFile($this->config->baseSettings);
|
||||
$this->userPreferences->pageInit($GLOBALS['cf']);
|
||||
|
||||
@ -92,7 +90,7 @@ class ImportController extends AbstractController
|
||||
$relationParameters = $this->relation->getRelationParameters();
|
||||
|
||||
$this->render('preferences/header', [
|
||||
'route' => $route,
|
||||
'route' => $request->getRoute(),
|
||||
'is_saved' => ! empty($_GET['saved']),
|
||||
'has_config_storage' => $relationParameters->userPreferencesFeature !== null,
|
||||
]);
|
||||
|
||||
@ -9,8 +9,8 @@ use PhpMyAdmin\Config\ConfigFile;
|
||||
use PhpMyAdmin\Config\Forms\User\MainForm;
|
||||
use PhpMyAdmin\ConfigStorage\Relation;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Routing;
|
||||
use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\TwoFactor;
|
||||
use PhpMyAdmin\Url;
|
||||
@ -43,7 +43,7 @@ class MainPanelController extends AbstractController
|
||||
$this->config = $config;
|
||||
}
|
||||
|
||||
public function __invoke(): void
|
||||
public function __invoke(ServerRequest $request): void
|
||||
{
|
||||
$GLOBALS['cf'] = $GLOBALS['cf'] ?? null;
|
||||
$GLOBALS['error'] = $GLOBALS['error'] ?? null;
|
||||
@ -51,8 +51,6 @@ class MainPanelController extends AbstractController
|
||||
$GLOBALS['hash'] = $GLOBALS['hash'] ?? null;
|
||||
$GLOBALS['server'] = $GLOBALS['server'] ?? null;
|
||||
|
||||
$route = Routing::getCurrentRoute();
|
||||
|
||||
$GLOBALS['cf'] = new ConfigFile($this->config->baseSettings);
|
||||
$this->userPreferences->pageInit($GLOBALS['cf']);
|
||||
|
||||
@ -92,7 +90,7 @@ class MainPanelController extends AbstractController
|
||||
$relationParameters = $this->relation->getRelationParameters();
|
||||
|
||||
$this->render('preferences/header', [
|
||||
'route' => $route,
|
||||
'route' => $request->getRoute(),
|
||||
'is_saved' => ! empty($_GET['saved']),
|
||||
'has_config_storage' => $relationParameters->userPreferencesFeature !== null,
|
||||
]);
|
||||
|
||||
@ -11,9 +11,9 @@ use PhpMyAdmin\ConfigStorage\Relation;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Core;
|
||||
use PhpMyAdmin\File;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Message;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Routing;
|
||||
use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\ThemeManager;
|
||||
use PhpMyAdmin\UserPreferences;
|
||||
@ -65,7 +65,7 @@ class ManageController extends AbstractController
|
||||
$this->config = $config;
|
||||
}
|
||||
|
||||
public function __invoke(): void
|
||||
public function __invoke(ServerRequest $request): void
|
||||
{
|
||||
$GLOBALS['cf'] = $GLOBALS['cf'] ?? null;
|
||||
$GLOBALS['error'] = $GLOBALS['error'] ?? null;
|
||||
@ -79,7 +79,7 @@ class ManageController extends AbstractController
|
||||
$GLOBALS['params'] = $GLOBALS['params'] ?? null;
|
||||
$GLOBALS['query'] = $GLOBALS['query'] ?? null;
|
||||
|
||||
$route = Routing::getCurrentRoute();
|
||||
$route = $request->getRoute();
|
||||
|
||||
$GLOBALS['cf'] = new ConfigFile($this->config->baseSettings);
|
||||
$this->userPreferences->pageInit($GLOBALS['cf']);
|
||||
|
||||
@ -9,8 +9,8 @@ use PhpMyAdmin\Config\ConfigFile;
|
||||
use PhpMyAdmin\Config\Forms\User\NaviForm;
|
||||
use PhpMyAdmin\ConfigStorage\Relation;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Routing;
|
||||
use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\TwoFactor;
|
||||
use PhpMyAdmin\Url;
|
||||
@ -43,7 +43,7 @@ class NavigationController extends AbstractController
|
||||
$this->config = $config;
|
||||
}
|
||||
|
||||
public function __invoke(): void
|
||||
public function __invoke(ServerRequest $request): void
|
||||
{
|
||||
$GLOBALS['cf'] = $GLOBALS['cf'] ?? null;
|
||||
$GLOBALS['error'] = $GLOBALS['error'] ?? null;
|
||||
@ -51,8 +51,6 @@ class NavigationController extends AbstractController
|
||||
$GLOBALS['hash'] = $GLOBALS['hash'] ?? null;
|
||||
$GLOBALS['server'] = $GLOBALS['server'] ?? null;
|
||||
|
||||
$route = Routing::getCurrentRoute();
|
||||
|
||||
$GLOBALS['cf'] = new ConfigFile($this->config->baseSettings);
|
||||
$this->userPreferences->pageInit($GLOBALS['cf']);
|
||||
|
||||
@ -92,7 +90,7 @@ class NavigationController extends AbstractController
|
||||
$relationParameters = $this->relation->getRelationParameters();
|
||||
|
||||
$this->render('preferences/header', [
|
||||
'route' => $route,
|
||||
'route' => $request->getRoute(),
|
||||
'is_saved' => ! empty($_GET['saved']),
|
||||
'has_config_storage' => $relationParameters->userPreferencesFeature !== null,
|
||||
]);
|
||||
|
||||
@ -9,8 +9,8 @@ use PhpMyAdmin\Config\ConfigFile;
|
||||
use PhpMyAdmin\Config\Forms\User\SqlForm;
|
||||
use PhpMyAdmin\ConfigStorage\Relation;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Routing;
|
||||
use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\TwoFactor;
|
||||
use PhpMyAdmin\Url;
|
||||
@ -43,7 +43,7 @@ class SqlController extends AbstractController
|
||||
$this->config = $config;
|
||||
}
|
||||
|
||||
public function __invoke(): void
|
||||
public function __invoke(ServerRequest $request): void
|
||||
{
|
||||
$GLOBALS['cf'] = $GLOBALS['cf'] ?? null;
|
||||
$GLOBALS['error'] = $GLOBALS['error'] ?? null;
|
||||
@ -51,8 +51,6 @@ class SqlController extends AbstractController
|
||||
$GLOBALS['hash'] = $GLOBALS['hash'] ?? null;
|
||||
$GLOBALS['server'] = $GLOBALS['server'] ?? null;
|
||||
|
||||
$route = Routing::getCurrentRoute();
|
||||
|
||||
$GLOBALS['cf'] = new ConfigFile($this->config->baseSettings);
|
||||
$this->userPreferences->pageInit($GLOBALS['cf']);
|
||||
|
||||
@ -92,7 +90,7 @@ class SqlController extends AbstractController
|
||||
$relationParameters = $this->relation->getRelationParameters();
|
||||
|
||||
$this->render('preferences/header', [
|
||||
'route' => $route,
|
||||
'route' => $request->getRoute(),
|
||||
'is_saved' => ! empty($_GET['saved']),
|
||||
'has_config_storage' => $relationParameters->userPreferencesFeature !== null,
|
||||
]);
|
||||
|
||||
@ -6,9 +6,9 @@ namespace PhpMyAdmin\Controllers\Preferences;
|
||||
|
||||
use PhpMyAdmin\ConfigStorage\Relation;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Message;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Routing;
|
||||
use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\TwoFactor;
|
||||
|
||||
@ -26,14 +26,12 @@ class TwoFactorController extends AbstractController
|
||||
$this->relation = $relation;
|
||||
}
|
||||
|
||||
public function __invoke(): void
|
||||
public function __invoke(ServerRequest $request): void
|
||||
{
|
||||
$route = Routing::getCurrentRoute();
|
||||
|
||||
$relationParameters = $this->relation->getRelationParameters();
|
||||
|
||||
echo $this->template->render('preferences/header', [
|
||||
'route' => $route,
|
||||
'route' => $request->getRoute(),
|
||||
'is_saved' => ! empty($_GET['saved']),
|
||||
'has_config_storage' => $relationParameters->userPreferencesFeature !== null,
|
||||
]);
|
||||
|
||||
@ -11,6 +11,7 @@ use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Core;
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
use PhpMyAdmin\Html\Generator;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Message;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Server\Plugins;
|
||||
@ -49,7 +50,7 @@ class PrivilegesController extends AbstractController
|
||||
$this->dbi = $dbi;
|
||||
}
|
||||
|
||||
public function __invoke(): void
|
||||
public function __invoke(ServerRequest $request): void
|
||||
{
|
||||
$GLOBALS['errorUrl'] = $GLOBALS['errorUrl'] ?? null;
|
||||
$GLOBALS['message'] = $GLOBALS['message'] ?? null;
|
||||
@ -435,7 +436,8 @@ class PrivilegesController extends AbstractController
|
||||
$GLOBALS['username'],
|
||||
$GLOBALS['hostname'] ?? '',
|
||||
$GLOBALS['dbname'] ?? '',
|
||||
$GLOBALS['tablename'] ?? ''
|
||||
$GLOBALS['tablename'] ?? '',
|
||||
$request->getRoute()
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
@ -11,9 +11,9 @@ use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Core;
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
use PhpMyAdmin\Html\Generator;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Index;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Routing;
|
||||
use PhpMyAdmin\Table;
|
||||
use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\Util;
|
||||
@ -56,10 +56,8 @@ final class RelationController extends AbstractController
|
||||
/**
|
||||
* Index
|
||||
*/
|
||||
public function __invoke(): void
|
||||
public function __invoke(ServerRequest $request): void
|
||||
{
|
||||
$route = Routing::getCurrentRoute();
|
||||
|
||||
$options = [
|
||||
'CASCADE' => 'CASCADE',
|
||||
'SET_NULL' => 'SET NULL',
|
||||
@ -224,7 +222,7 @@ final class RelationController extends AbstractController
|
||||
'databases' => $GLOBALS['dblist']->databases,
|
||||
'dbi' => $this->dbi,
|
||||
'default_sliders_state' => $GLOBALS['cfg']['InitialSlidersState'],
|
||||
'route' => $route,
|
||||
'route' => $request->getRoute(),
|
||||
'display_field' => $this->relation->getDisplayField($GLOBALS['db'], $GLOBALS['table']),
|
||||
'foreign_key_row' => $foreignKeyRow,
|
||||
]);
|
||||
|
||||
@ -7,6 +7,7 @@ namespace PhpMyAdmin\Controllers\Table\Structure;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\Table\StructureController;
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Message;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
@ -34,7 +35,7 @@ final class AddIndexController extends AbstractController
|
||||
$this->structureController = $structureController;
|
||||
}
|
||||
|
||||
public function __invoke(): void
|
||||
public function __invoke(ServerRequest $request): void
|
||||
{
|
||||
$GLOBALS['message'] = $GLOBALS['message'] ?? null;
|
||||
|
||||
@ -67,6 +68,6 @@ final class AddIndexController extends AbstractController
|
||||
$GLOBALS['message'] = Message::success();
|
||||
}
|
||||
|
||||
($this->structureController)();
|
||||
($this->structureController)($request);
|
||||
}
|
||||
}
|
||||
|
||||
@ -7,6 +7,7 @@ namespace PhpMyAdmin\Controllers\Table\Structure;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\Sql\SqlController;
|
||||
use PhpMyAdmin\Controllers\Table\StructureController;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
|
||||
@ -29,7 +30,7 @@ final class AddKeyController extends AbstractController
|
||||
$this->structureController = $structureController;
|
||||
}
|
||||
|
||||
public function __invoke(): void
|
||||
public function __invoke(ServerRequest $request): void
|
||||
{
|
||||
$GLOBALS['reload'] = $GLOBALS['reload'] ?? null;
|
||||
|
||||
@ -37,6 +38,6 @@ final class AddKeyController extends AbstractController
|
||||
|
||||
$GLOBALS['reload'] = true;
|
||||
|
||||
($this->structureController)();
|
||||
($this->structureController)($request);
|
||||
}
|
||||
}
|
||||
|
||||
@ -7,6 +7,7 @@ namespace PhpMyAdmin\Controllers\Table\Structure;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\Table\StructureController;
|
||||
use PhpMyAdmin\Database\CentralColumns;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Message;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
@ -32,7 +33,7 @@ final class CentralColumnsAddController extends AbstractController
|
||||
$this->structureController = $structureController;
|
||||
}
|
||||
|
||||
public function __invoke(): void
|
||||
public function __invoke(ServerRequest $request): void
|
||||
{
|
||||
$GLOBALS['message'] = $GLOBALS['message'] ?? null;
|
||||
|
||||
@ -55,6 +56,6 @@ final class CentralColumnsAddController extends AbstractController
|
||||
$GLOBALS['message'] = Message::success();
|
||||
}
|
||||
|
||||
($this->structureController)();
|
||||
($this->structureController)($request);
|
||||
}
|
||||
}
|
||||
|
||||
@ -7,6 +7,7 @@ namespace PhpMyAdmin\Controllers\Table\Structure;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\Table\StructureController;
|
||||
use PhpMyAdmin\Database\CentralColumns;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Message;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
@ -32,7 +33,7 @@ final class CentralColumnsRemoveController extends AbstractController
|
||||
$this->structureController = $structureController;
|
||||
}
|
||||
|
||||
public function __invoke(): void
|
||||
public function __invoke(ServerRequest $request): void
|
||||
{
|
||||
$GLOBALS['message'] = $GLOBALS['message'] ?? null;
|
||||
|
||||
@ -55,6 +56,6 @@ final class CentralColumnsRemoveController extends AbstractController
|
||||
$GLOBALS['message'] = Message::success();
|
||||
}
|
||||
|
||||
($this->structureController)();
|
||||
($this->structureController)($request);
|
||||
}
|
||||
}
|
||||
|
||||
@ -7,6 +7,7 @@ namespace PhpMyAdmin\Controllers\Table\Structure;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\Table\StructureController;
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Message;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
@ -34,7 +35,7 @@ final class FulltextController extends AbstractController
|
||||
$this->structureController = $structureController;
|
||||
}
|
||||
|
||||
public function __invoke(): void
|
||||
public function __invoke(ServerRequest $request): void
|
||||
{
|
||||
$GLOBALS['message'] = $GLOBALS['message'] ?? null;
|
||||
|
||||
@ -67,6 +68,6 @@ final class FulltextController extends AbstractController
|
||||
$GLOBALS['message'] = Message::success();
|
||||
}
|
||||
|
||||
($this->structureController)();
|
||||
($this->structureController)($request);
|
||||
}
|
||||
}
|
||||
|
||||
@ -10,6 +10,7 @@ use PhpMyAdmin\Controllers\Table\StructureController;
|
||||
use PhpMyAdmin\CreateAddField;
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
use PhpMyAdmin\Html\Generator;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Message;
|
||||
use PhpMyAdmin\Partitioning\TablePartitionDefinition;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
@ -51,12 +52,12 @@ final class PartitioningController extends AbstractController
|
||||
$this->structureController = $structureController;
|
||||
}
|
||||
|
||||
public function __invoke(): void
|
||||
public function __invoke(ServerRequest $request): void
|
||||
{
|
||||
if (isset($_POST['save_partitioning'])) {
|
||||
$this->dbi->selectDb($GLOBALS['db']);
|
||||
$this->updatePartitioning();
|
||||
($this->structureController)();
|
||||
($this->structureController)($request);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
@ -8,6 +8,7 @@ use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\Table\StructureController;
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
use PhpMyAdmin\DbTableExists;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Message;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
@ -36,7 +37,7 @@ final class PrimaryController extends AbstractController
|
||||
$this->structureController = $structureController;
|
||||
}
|
||||
|
||||
public function __invoke(): void
|
||||
public function __invoke(ServerRequest $request): void
|
||||
{
|
||||
$GLOBALS['message'] = $GLOBALS['message'] ?? null;
|
||||
$GLOBALS['urlParams'] = $GLOBALS['urlParams'] ?? null;
|
||||
@ -106,7 +107,7 @@ final class PrimaryController extends AbstractController
|
||||
$GLOBALS['message'] = Message::success();
|
||||
}
|
||||
|
||||
($this->structureController)();
|
||||
($this->structureController)($request);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -10,6 +10,7 @@ use PhpMyAdmin\Controllers\Table\StructureController;
|
||||
use PhpMyAdmin\Core;
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
use PhpMyAdmin\Html\Generator;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Index;
|
||||
use PhpMyAdmin\Message;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
@ -62,7 +63,7 @@ final class SaveController extends AbstractController
|
||||
$this->tableObj = $this->dbi->getTable($GLOBALS['db'], $GLOBALS['table']);
|
||||
}
|
||||
|
||||
public function __invoke(): void
|
||||
public function __invoke(ServerRequest $request): void
|
||||
{
|
||||
$regenerate = $this->updateColumns();
|
||||
if (! $regenerate) {
|
||||
@ -70,7 +71,7 @@ final class SaveController extends AbstractController
|
||||
unset($_POST['selected']);
|
||||
}
|
||||
|
||||
($this->structureController)();
|
||||
($this->structureController)($request);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -7,6 +7,7 @@ namespace PhpMyAdmin\Controllers\Table\Structure;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\Table\StructureController;
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Message;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
@ -34,7 +35,7 @@ final class SpatialController extends AbstractController
|
||||
$this->structureController = $structureController;
|
||||
}
|
||||
|
||||
public function __invoke(): void
|
||||
public function __invoke(ServerRequest $request): void
|
||||
{
|
||||
$GLOBALS['message'] = $GLOBALS['message'] ?? null;
|
||||
|
||||
@ -67,6 +68,6 @@ final class SpatialController extends AbstractController
|
||||
$GLOBALS['message'] = Message::success();
|
||||
}
|
||||
|
||||
($this->structureController)();
|
||||
($this->structureController)($request);
|
||||
}
|
||||
}
|
||||
|
||||
@ -7,6 +7,7 @@ namespace PhpMyAdmin\Controllers\Table\Structure;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\Table\StructureController;
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Message;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
@ -34,7 +35,7 @@ final class UniqueController extends AbstractController
|
||||
$this->structureController = $structureController;
|
||||
}
|
||||
|
||||
public function __invoke(): void
|
||||
public function __invoke(ServerRequest $request): void
|
||||
{
|
||||
$GLOBALS['message'] = $GLOBALS['message'] ?? null;
|
||||
|
||||
@ -67,6 +68,6 @@ final class UniqueController extends AbstractController
|
||||
$GLOBALS['message'] = Message::success();
|
||||
}
|
||||
|
||||
($this->structureController)();
|
||||
($this->structureController)($request);
|
||||
}
|
||||
}
|
||||
|
||||
@ -18,11 +18,11 @@ use PhpMyAdmin\DbTableExists;
|
||||
use PhpMyAdmin\Engines\Innodb;
|
||||
use PhpMyAdmin\FlashMessages;
|
||||
use PhpMyAdmin\Html\Generator;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Index;
|
||||
use PhpMyAdmin\Partitioning\Partition;
|
||||
use PhpMyAdmin\Query\Utilities;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Routing;
|
||||
use PhpMyAdmin\StorageEngine;
|
||||
use PhpMyAdmin\Table;
|
||||
use PhpMyAdmin\Template;
|
||||
@ -86,7 +86,7 @@ class StructureController extends AbstractController
|
||||
$this->tableObj = $this->dbi->getTable($GLOBALS['db'], $GLOBALS['table']);
|
||||
}
|
||||
|
||||
public function __invoke(): void
|
||||
public function __invoke(ServerRequest $request): void
|
||||
{
|
||||
$GLOBALS['reread_info'] = $GLOBALS['reread_info'] ?? null;
|
||||
$GLOBALS['showtable'] = $GLOBALS['showtable'] ?? null;
|
||||
@ -150,7 +150,8 @@ class StructureController extends AbstractController
|
||||
$primary,
|
||||
$fields,
|
||||
$columns_with_index,
|
||||
$isSystemSchema
|
||||
$isSystemSchema,
|
||||
$request->getRoute()
|
||||
));
|
||||
}
|
||||
|
||||
@ -161,6 +162,7 @@ class StructureController extends AbstractController
|
||||
* @param Index|false $primary_index primary index or false if no one exists
|
||||
* @param array $fields Fields
|
||||
* @param array $columns_with_index Columns with index
|
||||
* @psalm-param non-empty-string $route
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
@ -170,13 +172,12 @@ class StructureController extends AbstractController
|
||||
$primary_index,
|
||||
array $fields,
|
||||
array $columns_with_index,
|
||||
bool $isSystemSchema
|
||||
bool $isSystemSchema,
|
||||
string $route
|
||||
) {
|
||||
$GLOBALS['tbl_is_view'] = $GLOBALS['tbl_is_view'] ?? null;
|
||||
$GLOBALS['tbl_storage_engine'] = $GLOBALS['tbl_storage_engine'] ?? null;
|
||||
|
||||
$route = Routing::getCurrentRoute();
|
||||
|
||||
// prepare comments
|
||||
$comments_map = [];
|
||||
$mime_map = [];
|
||||
|
||||
@ -6,6 +6,7 @@ namespace PhpMyAdmin\Controllers;
|
||||
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
use PhpMyAdmin\Html\Generator;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Message;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
@ -35,7 +36,7 @@ class UserPasswordController extends AbstractController
|
||||
$this->dbi = $dbi;
|
||||
}
|
||||
|
||||
public function __invoke(): void
|
||||
public function __invoke(ServerRequest $request): void
|
||||
{
|
||||
$GLOBALS['hostname'] = $GLOBALS['hostname'] ?? null;
|
||||
$GLOBALS['username'] = $GLOBALS['username'] ?? null;
|
||||
@ -116,7 +117,8 @@ class UserPasswordController extends AbstractController
|
||||
|
||||
$this->response->addHTML($this->userPassword->getFormForChangePassword(
|
||||
$GLOBALS['username'],
|
||||
$GLOBALS['hostname']
|
||||
$GLOBALS['hostname'],
|
||||
$request->getRoute()
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
@ -8,6 +8,7 @@ use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Controllers\Table\StructureController;
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
use PhpMyAdmin\Html\Generator;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Message;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\SqlParser\Parser;
|
||||
@ -42,7 +43,7 @@ class CreateController extends AbstractController
|
||||
$this->dbi = $dbi;
|
||||
}
|
||||
|
||||
public function __invoke(): void
|
||||
public function __invoke(ServerRequest $request): void
|
||||
{
|
||||
$this->checkParameters(['db']);
|
||||
$GLOBALS['text_dir'] = $GLOBALS['text_dir'] ?? null;
|
||||
@ -204,7 +205,7 @@ class CreateController extends AbstractController
|
||||
$GLOBALS['message'] = Message::success();
|
||||
/** @var StructureController $controller */
|
||||
$controller = $GLOBALS['containerBuilder']->get(StructureController::class);
|
||||
$controller();
|
||||
$controller($request);
|
||||
} else {
|
||||
$this->response->addJSON(
|
||||
'message',
|
||||
|
||||
@ -244,7 +244,7 @@ class DatabaseInterface implements DbalInterface
|
||||
sprintf(
|
||||
'SQL[%s?route=%s]: %0.3f(W:%d,C:%s,L:0x%02X) > %s',
|
||||
basename($_SERVER['SCRIPT_NAME']),
|
||||
Routing::getCurrentRoute(),
|
||||
Common::getRequest()->getRoute(),
|
||||
$this->lastQueryExecutionTime,
|
||||
$warningsCount,
|
||||
$cacheAffectedRows ? 'y' : 'n',
|
||||
|
||||
@ -141,7 +141,7 @@ class Footer
|
||||
$GLOBALS['server'] = $GLOBALS['server'] ?? null;
|
||||
|
||||
$params = [];
|
||||
$params['route'] = Routing::getCurrentRoute();
|
||||
$params['route'] = Common::getRequest()->getRoute();
|
||||
|
||||
if (isset($GLOBALS['db']) && strlen($GLOBALS['db']) > 0) {
|
||||
$params['db'] = $GLOBALS['db'];
|
||||
|
||||
@ -10,6 +10,7 @@ use Psr\Http\Message\UriInterface;
|
||||
|
||||
use function is_array;
|
||||
use function is_object;
|
||||
use function is_string;
|
||||
use function property_exists;
|
||||
|
||||
class ServerRequest implements ServerRequestInterface
|
||||
@ -339,4 +340,37 @@ class ServerRequest implements ServerRequestInterface
|
||||
{
|
||||
return $this->getMethod() === 'POST';
|
||||
}
|
||||
|
||||
/**
|
||||
* @psalm-return non-empty-string
|
||||
*/
|
||||
public function getRoute(): string
|
||||
{
|
||||
$getParams = $this->getQueryParams();
|
||||
$postParams = $this->getParsedBody();
|
||||
$route = '/';
|
||||
if (isset($getParams['route']) && is_string($getParams['route']) && $getParams['route'] !== '') {
|
||||
$route = $getParams['route'];
|
||||
} elseif (
|
||||
is_array($postParams)
|
||||
&& isset($postParams['route'])
|
||||
&& is_string($postParams['route'])
|
||||
&& $postParams['route'] !== ''
|
||||
) {
|
||||
$route = $postParams['route'];
|
||||
}
|
||||
|
||||
/**
|
||||
* See FAQ 1.34.
|
||||
*
|
||||
* @see https://docs.phpmyadmin.net/en/latest/faq.html#faq1-34
|
||||
*/
|
||||
$db = isset($getParams['db']) && is_string($getParams['db']) ? $getParams['db'] : '';
|
||||
if ($route === '/' && $db !== '') {
|
||||
$table = isset($getParams['table']) && is_string($getParams['table']) ? $getParams['table'] : '';
|
||||
$route = $table === '' ? '/database/structure' : '/sql';
|
||||
}
|
||||
|
||||
return $route;
|
||||
}
|
||||
}
|
||||
|
||||
@ -218,7 +218,7 @@ class Menu
|
||||
*/
|
||||
private function getTableTabs(): array
|
||||
{
|
||||
$route = Routing::getCurrentRoute();
|
||||
$route = Common::getRequest()->getRoute();
|
||||
|
||||
$isSystemSchema = Utilities::isSystemSchema($this->db);
|
||||
$tableIsView = $this->dbi->getTable($this->db, $this->table)
|
||||
@ -337,7 +337,7 @@ class Menu
|
||||
*/
|
||||
private function getDbTabs(): array
|
||||
{
|
||||
$route = Routing::getCurrentRoute();
|
||||
$route = Common::getRequest()->getRoute();
|
||||
|
||||
$isSystemSchema = Utilities::isSystemSchema($this->db);
|
||||
$numTables = count($this->dbi->getTables($this->db));
|
||||
@ -452,7 +452,7 @@ class Menu
|
||||
*/
|
||||
private function getServerTabs(): array
|
||||
{
|
||||
$route = Routing::getCurrentRoute();
|
||||
$route = Common::getRequest()->getRoute();
|
||||
|
||||
$isSuperUser = $this->dbi->isSuperUser();
|
||||
$isCreateOrGrantUser = $this->dbi->isGrantUser() || $this->dbi->isCreateUser();
|
||||
|
||||
@ -7,13 +7,13 @@ declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Plugins\Auth;
|
||||
|
||||
use PhpMyAdmin\Common;
|
||||
use PhpMyAdmin\Config;
|
||||
use PhpMyAdmin\Core;
|
||||
use PhpMyAdmin\LanguageManager;
|
||||
use PhpMyAdmin\Message;
|
||||
use PhpMyAdmin\Plugins\AuthenticationPlugin;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Routing;
|
||||
use PhpMyAdmin\Server\Select;
|
||||
use PhpMyAdmin\Session;
|
||||
use PhpMyAdmin\Url;
|
||||
@ -148,7 +148,7 @@ class AuthenticationCookie extends AuthenticationPlugin
|
||||
}
|
||||
|
||||
$_form_params = [];
|
||||
$_form_params['route'] = Routing::getCurrentRoute();
|
||||
$_form_params['route'] = Common::getRequest()->getRoute();
|
||||
|
||||
if (strlen($GLOBALS['db'])) {
|
||||
$_form_params['db'] = $GLOBALS['db'];
|
||||
@ -467,7 +467,7 @@ class AuthenticationCookie extends AuthenticationPlugin
|
||||
|
||||
// any parameters to pass?
|
||||
$url_params = [];
|
||||
$url_params['route'] = Routing::getCurrentRoute();
|
||||
$url_params['route'] = Common::getRequest()->getRoute();
|
||||
|
||||
if (strlen($GLOBALS['db']) > 0) {
|
||||
$url_params['db'] = $GLOBALS['db'];
|
||||
|
||||
@ -116,40 +116,15 @@ class Routing
|
||||
return @file_put_contents(self::ROUTES_CACHE_FILE, $cacheContents) !== false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @psalm-return non-empty-string
|
||||
*/
|
||||
public static function getCurrentRoute(): string
|
||||
{
|
||||
/** @var mixed $route */
|
||||
$route = $_GET['route'] ?? $_POST['route'] ?? '/';
|
||||
if (! is_string($route) || $route === '') {
|
||||
$route = '/';
|
||||
}
|
||||
|
||||
/**
|
||||
* See FAQ 1.34.
|
||||
*
|
||||
* @see https://docs.phpmyadmin.net/en/latest/faq.html#faq1-34
|
||||
*/
|
||||
$db = isset($_GET['db']) && is_string($_GET['db']) ? $_GET['db'] : '';
|
||||
if ($route === '/' && $db !== '') {
|
||||
$table = isset($_GET['table']) && is_string($_GET['table']) ? $_GET['table'] : '';
|
||||
$route = $table === '' ? '/database/structure' : '/sql';
|
||||
}
|
||||
|
||||
return $route;
|
||||
}
|
||||
|
||||
/**
|
||||
* Call associated controller for a route using the dispatcher
|
||||
*/
|
||||
public static function callControllerForRoute(
|
||||
ServerRequest $request,
|
||||
string $route,
|
||||
Dispatcher $dispatcher,
|
||||
ContainerInterface $container
|
||||
): void {
|
||||
$route = $request->getRoute();
|
||||
$routeInfo = $dispatcher->dispatch($request->getMethod(), rawurldecode($route));
|
||||
|
||||
if ($routeInfo[0] === Dispatcher::NOT_FOUND) {
|
||||
|
||||
@ -19,7 +19,6 @@ use PhpMyAdmin\Html\MySQLDocumentation;
|
||||
use PhpMyAdmin\Message;
|
||||
use PhpMyAdmin\Query\Compatibility;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Routing;
|
||||
use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\Url;
|
||||
use PhpMyAdmin\Util;
|
||||
@ -3071,6 +3070,7 @@ class Privileges
|
||||
* @param string $hostname host name
|
||||
* @param string|array $dbname database name
|
||||
* @param string $tablename table name
|
||||
* @psalm-param non-empty-string $route
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
@ -3080,7 +3080,8 @@ class Privileges
|
||||
$username,
|
||||
$hostname,
|
||||
$dbname,
|
||||
$tablename
|
||||
$tablename,
|
||||
string $route
|
||||
) {
|
||||
$sql = "SELECT '1' FROM `mysql`.`user`"
|
||||
. " WHERE `User` = '" . $this->dbi->escapeString($username) . "'"
|
||||
@ -3151,7 +3152,7 @@ class Privileges
|
||||
$changeLoginInfoFields = '';
|
||||
if (! is_array($dbname) && strlen($dbname) === 0 && ! $userDoesNotExists) {
|
||||
//change login information
|
||||
$changePassword = $this->getFormForChangePassword($username, $hostname, true);
|
||||
$changePassword = $this->getFormForChangePassword($username, $hostname, true, $route);
|
||||
$userGroup = $this->getUserGroupForUser($username);
|
||||
$changeLoginInfoFields = $this->getHtmlForLoginInformationFields('change', $username, $hostname);
|
||||
}
|
||||
@ -3701,10 +3702,15 @@ class Privileges
|
||||
return $this->parseProcPriv($privileges);
|
||||
}
|
||||
|
||||
public function getFormForChangePassword(string $username, string $hostname, bool $editOthers): string
|
||||
{
|
||||
$route = Routing::getCurrentRoute();
|
||||
|
||||
/**
|
||||
* @psalm-param non-empty-string $route
|
||||
*/
|
||||
public function getFormForChangePassword(
|
||||
string $username,
|
||||
string $hostname,
|
||||
bool $editOthers,
|
||||
string $route
|
||||
): string {
|
||||
$isPrivileges = $route === '/server/privileges';
|
||||
|
||||
$serverVersion = $this->dbi->getVersion();
|
||||
|
||||
@ -4,6 +4,7 @@ declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Table;
|
||||
|
||||
use PhpMyAdmin\Common;
|
||||
use PhpMyAdmin\Controllers\Table\StructureController;
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
use PhpMyAdmin\Html\Generator;
|
||||
@ -107,7 +108,7 @@ final class Indexes
|
||||
} else {
|
||||
/** @var StructureController $controller */
|
||||
$controller = $GLOBALS['containerBuilder']->get(StructureController::class);
|
||||
$controller();
|
||||
$controller(Common::getRequest());
|
||||
}
|
||||
} else {
|
||||
$this->response->setRequestStatus(false);
|
||||
|
||||
@ -208,8 +208,11 @@ class UserPassword
|
||||
$GLOBALS['dbi']->tryQuery('FLUSH PRIVILEGES;');
|
||||
}
|
||||
|
||||
public function getFormForChangePassword(?string $username, ?string $hostname): string
|
||||
/**
|
||||
* @psalm-param non-empty-string $route
|
||||
*/
|
||||
public function getFormForChangePassword(?string $username, ?string $hostname, string $route): string
|
||||
{
|
||||
return $this->serverPrivileges->getFormForChangePassword($username ?? '', $hostname ?? '', false);
|
||||
return $this->serverPrivileges->getFormForChangePassword($username ?? '', $hostname ?? '', false, $route);
|
||||
}
|
||||
}
|
||||
|
||||
@ -6,6 +6,7 @@ namespace PhpMyAdmin\Tests\Controllers\Server;
|
||||
|
||||
use PhpMyAdmin\ConfigStorage\Relation;
|
||||
use PhpMyAdmin\Controllers\Server\PrivilegesController;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\Tests\AbstractTestCase;
|
||||
use PhpMyAdmin\Tests\Stubs\ResponseRenderer;
|
||||
@ -54,8 +55,10 @@ class PrivilegesControllerTest extends AbstractTestCase
|
||||
);
|
||||
// phpcs:enable
|
||||
|
||||
$request = $this->createStub(ServerRequest::class);
|
||||
|
||||
$response = new ResponseRenderer();
|
||||
(new PrivilegesController($response, new Template(), new Relation($this->dbi), $this->dbi))();
|
||||
(new PrivilegesController($response, new Template(), new Relation($this->dbi), $this->dbi))($request);
|
||||
|
||||
$actual = $response->getHTMLResult();
|
||||
$this->assertStringContainsString('User accounts overview', $actual);
|
||||
|
||||
@ -7,6 +7,7 @@ namespace PhpMyAdmin\Tests\Controllers\Table\Structure;
|
||||
use PhpMyAdmin\ConfigStorage\Relation;
|
||||
use PhpMyAdmin\Controllers\Table\Structure\SaveController;
|
||||
use PhpMyAdmin\Controllers\Table\StructureController;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\Tests\AbstractTestCase;
|
||||
use PhpMyAdmin\Tests\Stubs\ResponseRenderer;
|
||||
@ -76,8 +77,10 @@ class SaveControllerTest extends AbstractTestCase
|
||||
);
|
||||
$dbi = $this->createDatabaseInterface($dummyDbi);
|
||||
|
||||
$request = $this->createStub(ServerRequest::class);
|
||||
|
||||
$mock = $this->createMock(StructureController::class);
|
||||
$mock->expects($this->once())->method('__invoke');
|
||||
$mock->expects($this->once())->method('__invoke')->with($request);
|
||||
|
||||
(new SaveController(
|
||||
new ResponseRenderer(),
|
||||
@ -86,7 +89,7 @@ class SaveControllerTest extends AbstractTestCase
|
||||
new Transformations(),
|
||||
$dbi,
|
||||
$mock
|
||||
))();
|
||||
))($request);
|
||||
|
||||
$this->assertArrayNotHasKey('selected', $_POST);
|
||||
}
|
||||
|
||||
@ -10,6 +10,7 @@ use PhpMyAdmin\ConfigStorage\RelationCleanup;
|
||||
use PhpMyAdmin\Controllers\Table\StructureController;
|
||||
use PhpMyAdmin\CreateAddField;
|
||||
use PhpMyAdmin\FlashMessages;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Index;
|
||||
use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\Tests\AbstractTestCase;
|
||||
@ -34,7 +35,6 @@ class StructureControllerTest extends AbstractTestCase
|
||||
$GLOBALS['cfg']['Server']['DisableIS'] = true;
|
||||
$GLOBALS['cfg']['ShowStats'] = false;
|
||||
$GLOBALS['cfg']['ShowPropertyComments'] = false;
|
||||
$_GET['route'] = '/table/structure';
|
||||
$_SESSION['relation'] = [];
|
||||
|
||||
$this->dummyDbi->addSelectDb('test_db');
|
||||
@ -68,6 +68,9 @@ class StructureControllerTest extends AbstractTestCase
|
||||
$pageSettings = new PageSettings('TableStructure');
|
||||
$fields = $this->dbi->getColumns($GLOBALS['db'], $GLOBALS['table'], true);
|
||||
|
||||
$request = $this->createStub(ServerRequest::class);
|
||||
$request->method('getRoute')->willReturn('/table/structure');
|
||||
|
||||
$response = new ResponseRenderer();
|
||||
$relation = new Relation($this->dbi);
|
||||
$template = new Template();
|
||||
@ -80,7 +83,7 @@ class StructureControllerTest extends AbstractTestCase
|
||||
new RelationCleanup($this->dbi, $relation),
|
||||
$this->dbi,
|
||||
new FlashMessages()
|
||||
))();
|
||||
))($request);
|
||||
|
||||
$expected = $pageSettings->getHTML();
|
||||
$expected .= $template->render('table/structure/display_structure', [
|
||||
|
||||
50
test/classes/Http/ServerRequestTest.php
Normal file
50
test/classes/Http/ServerRequestTest.php
Normal file
@ -0,0 +1,50 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Tests\Http;
|
||||
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Psr\Http\Message\ServerRequestInterface;
|
||||
|
||||
/**
|
||||
* @covers \PhpMyAdmin\Http\ServerRequest
|
||||
*/
|
||||
class ServerRequestTest extends TestCase
|
||||
{
|
||||
/**
|
||||
* @param array<string, string> $get
|
||||
* @param array<string, string> $post
|
||||
*
|
||||
* @dataProvider providerForTestGetRoute
|
||||
*/
|
||||
public function testGetRoute(string $expected, array $get, array $post): void
|
||||
{
|
||||
$requestStub = $this->createStub(ServerRequestInterface::class);
|
||||
$requestStub->method('getQueryParams')->willReturn($get);
|
||||
$requestStub->method('getParsedBody')->willReturn($post);
|
||||
$request = new ServerRequest($requestStub);
|
||||
$this->assertSame($expected, $request->getRoute());
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array<int, array<int, array<string, string>|string>>
|
||||
* @psalm-return array<int, array{string, array<string, string>, array<string, string>}>
|
||||
*/
|
||||
public function providerForTestGetRoute(): iterable
|
||||
{
|
||||
return [
|
||||
['/', [], []],
|
||||
['/test', ['route' => '/test'], []],
|
||||
['/test', [], ['route' => '/test']],
|
||||
['/test-get', ['route' => '/test-get'], ['route' => '/test-post']],
|
||||
['/database/structure', ['db' => 'db'], []],
|
||||
['/sql', ['db' => 'db', 'table' => 'table'], []],
|
||||
['/test', ['route' => '/test', 'db' => 'db'], []],
|
||||
['/test', ['route' => '/test', 'db' => 'db', 'table' => 'table'], []],
|
||||
['/', [], ['db' => 'db']],
|
||||
['/', [], ['db' => 'db', 'table' => 'table']],
|
||||
];
|
||||
}
|
||||
}
|
||||
@ -60,62 +60,4 @@ class RoutingTest extends AbstractTestCase
|
||||
$this->assertInstanceOf(Dispatcher::class, $dispatcher);
|
||||
$this->assertSame($expected, $dispatcher->dispatch('GET', '/'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for Routing::getCurrentRoute
|
||||
*/
|
||||
public function testGetCurrentRouteNoParams(): void
|
||||
{
|
||||
$this->assertSame('/', Routing::getCurrentRoute());
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for Routing::getCurrentRoute
|
||||
*/
|
||||
public function testGetCurrentRouteGet(): void
|
||||
{
|
||||
$_GET['route'] = '/test';
|
||||
$this->assertSame('/test', Routing::getCurrentRoute());
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for Routing::getCurrentRoute
|
||||
*/
|
||||
public function testGetCurrentRoutePost(): void
|
||||
{
|
||||
unset($_GET['route']);
|
||||
$_POST['route'] = '/testpost';
|
||||
$this->assertSame('/testpost', Routing::getCurrentRoute());
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for Routing::getCurrentRoute
|
||||
*/
|
||||
public function testGetCurrentRouteGetIsOverPost(): void
|
||||
{
|
||||
$_GET['route'] = '/testget';
|
||||
$_POST['route'] = '/testpost';
|
||||
$this->assertSame('/testget', Routing::getCurrentRoute());
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for Routing::getCurrentRoute
|
||||
*/
|
||||
public function testGetCurrentRouteRedirectDbStructure(): void
|
||||
{
|
||||
unset($_POST['route']);
|
||||
unset($_GET['route']);
|
||||
$_GET['db'] = 'testDB';
|
||||
$this->assertSame('/database/structure', Routing::getCurrentRoute());
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for Routing::getCurrentRoute
|
||||
*/
|
||||
public function testGetCurrentRouteRedirectSql(): void
|
||||
{
|
||||
$_GET['db'] = 'testDB';
|
||||
$_GET['table'] = 'tableTest';
|
||||
$this->assertSame('/sql', Routing::getCurrentRoute());
|
||||
}
|
||||
}
|
||||
|
||||
@ -1438,7 +1438,8 @@ class PrivilegesTest extends AbstractTestCase
|
||||
$username,
|
||||
$hostname,
|
||||
$tablename,
|
||||
$_REQUEST['tablename']
|
||||
$_REQUEST['tablename'],
|
||||
'/server/privileges'
|
||||
);
|
||||
|
||||
//title
|
||||
@ -1549,7 +1550,15 @@ class PrivilegesTest extends AbstractTestCase
|
||||
$GLOBALS['username'] = 'user';
|
||||
$GLOBALS['hostname'] = 'host';
|
||||
|
||||
$actual = $serverPrivileges->getHtmlForUserProperties(false, 'sakila', 'user', 'host', 'sakila', 'actor');
|
||||
$actual = $serverPrivileges->getHtmlForUserProperties(
|
||||
false,
|
||||
'sakila',
|
||||
'user',
|
||||
'host',
|
||||
'sakila',
|
||||
'actor',
|
||||
'/server/privileges'
|
||||
);
|
||||
$this->assertStringContainsString('addUsersForm', $actual);
|
||||
$this->assertStringContainsString('SELECT', $actual);
|
||||
$this->assertStringContainsString('Allows reading data.', $actual);
|
||||
@ -1813,9 +1822,8 @@ class PrivilegesTest extends AbstractTestCase
|
||||
{
|
||||
$username = 'pma_username';
|
||||
$hostname = 'pma_hostname';
|
||||
$_GET['route'] = '/server/privileges';
|
||||
|
||||
$html = $this->serverPrivileges->getFormForChangePassword($username, $hostname, false);
|
||||
$html = $this->serverPrivileges->getFormForChangePassword($username, $hostname, false, '/server/privileges');
|
||||
|
||||
$this->assertStringContainsString(
|
||||
Url::getFromRoute('/server/privileges'),
|
||||
|
||||
Loading…
Reference in New Issue
Block a user