Skip to content

Commit

Permalink
Introduce ServerRequest::hasBodyParam() (#17870)
Browse files Browse the repository at this point in the history
* Drop Sql::setUiProp()
* Remove ternary operator
* Improve array guard
* Remove redundant isset
* Implement hasBodyParam()
* Add has() and hasQueryParam()

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>
  • Loading branch information
kamil-tekiela committed Nov 5, 2022
1 parent 95a93ba commit 959849f
Show file tree
Hide file tree
Showing 27 changed files with 127 additions and 222 deletions.
13 changes: 3 additions & 10 deletions libraries/classes/Controllers/CheckRelationsController.php
Expand Up @@ -28,29 +28,22 @@ public function __construct(ResponseRenderer $response, Template $template, Rela

public function __invoke(ServerRequest $request): void
{
/** @var string|null $createPmaDb */
$createPmaDb = $request->getParsedBodyParam('create_pmadb');
/** @var string|null $fixAllPmaDb */
$fixAllPmaDb = $request->getParsedBodyParam('fixall_pmadb');
/** @var string|null $fixPmaDb */
$fixPmaDb = $request->getParsedBodyParam('fix_pmadb');

$cfgStorageDbName = $this->relation->getConfigurationStorageDbName();

$db = DatabaseName::tryFromValue($GLOBALS['db']);

// If request for creating the pmadb
if (isset($createPmaDb) && $this->relation->createPmaDatabase($cfgStorageDbName)) {
if ($request->hasBodyParam('create_pmadb') && $this->relation->createPmaDatabase($cfgStorageDbName)) {
$this->relation->fixPmaTables($cfgStorageDbName);
}

// If request for creating all PMA tables.
if (isset($fixAllPmaDb) && $db !== null) {
if ($request->hasBodyParam('fixall_pmadb') && $db !== null) {
$this->relation->fixPmaTables($db->getName());
}

// If request for creating missing PMA tables.
if (isset($fixPmaDb)) {
if ($request->hasBodyParam('fix_pmadb')) {
$relationParameters = $this->relation->getRelationParameters();
$this->relation->fixPmaTables((string) $relationParameters->db);
}
Expand Down
Expand Up @@ -79,7 +79,7 @@ public function __invoke(ServerRequest $request): void
}

// Main search form has been submitted, get results
if ($request->getParsedBodyParam('submit_search') !== null) {
if ($request->hasBodyParam('submit_search')) {
$this->response->addHTML($databaseSearch->getSearchResults());
}

Expand Down
6 changes: 2 additions & 4 deletions libraries/classes/Controllers/Database/SqlController.php
Expand Up @@ -56,16 +56,14 @@ public function __invoke(ServerRequest $request): void
*/
$GLOBALS['goto'] = Url::getFromRoute('/database/sql');
$GLOBALS['back'] = $GLOBALS['goto'];
$delimiter = $request->getParsedBodyParam('delimiter');
$delimiter = $request->getParsedBodyParam('delimiter', ';');

$this->response->addHTML($this->sqlQueryForm->getHtml(
$GLOBALS['db'],
'',
true,
false,
$delimiter !== null
? htmlspecialchars($delimiter)
: ';'
htmlspecialchars($delimiter)
));
}
}
8 changes: 2 additions & 6 deletions libraries/classes/Controllers/ErrorReportController.php
Expand Up @@ -48,20 +48,16 @@ public function __invoke(ServerRequest $request): void
{
/** @var string $exceptionType */
$exceptionType = $request->getParsedBodyParam('exception_type', '');
/** @var string|null $sendErrorReport */
$sendErrorReport = $request->getParsedBodyParam('send_error_report');
/** @var string|null $automatic */
$automatic = $request->getParsedBodyParam('automatic');
/** @var string|null $alwaysSend */
$alwaysSend = $request->getParsedBodyParam('always_send');
/** @var string|null $getSettings */
$getSettings = $request->getParsedBodyParam('get_settings');

if (! in_array($exceptionType, ['js', 'php'])) {
return;
}

if ($sendErrorReport) {
if ($request->hasBodyParam('send_error_report')) {
if ($exceptionType === 'php') {
/**
* Prevent infinite error submission.
Expand Down Expand Up @@ -148,7 +144,7 @@ public function __invoke(ServerRequest $request): void
$userPreferences->persistOption('SendErrorReports', 'always', 'ask');
}
}
} elseif ($getSettings) {
} elseif ($request->hasBodyParam('get_settings')) {
$this->response->addJSON('report_setting', $GLOBALS['cfg']['SendErrorReports']);
} elseif ($exceptionType === 'js') {
$this->response->addJSON('report_modal', $this->errorReport->getEmptyModal());
Expand Down
3 changes: 1 addition & 2 deletions libraries/classes/Controllers/Export/ExportController.php
Expand Up @@ -109,8 +109,7 @@ public function __invoke(ServerRequest $request): void
$onServerParam = $request->getParsedBodyParam('onserver');
/** @var array|null $aliasesParam */
$aliasesParam = $request->getParsedBodyParam('aliases');
/** @var string|null $structureOrDataForced */
$structureOrDataForced = $request->getParsedBodyParam('structure_or_data_forced');
$structureOrDataForced = $request->hasBodyParam('structure_or_data_forced');

$this->addScriptFiles(['export_output.js']);

Expand Down
4 changes: 1 addition & 3 deletions libraries/classes/Controllers/GisDataEditorController.php
Expand Up @@ -51,8 +51,6 @@ public function __invoke(ServerRequest $request): void
$type = $request->getParsedBodyParam('type', '');
/** @var string|null $value */
$value = $request->getParsedBodyParam('value');
/** @var string|null $generate */
$generate = $request->getParsedBodyParam('generate');
/** @var string|null $inputName */
$inputName = $request->getParsedBodyParam('input_name');

Expand Down Expand Up @@ -143,7 +141,7 @@ public function __invoke(ServerRequest $request): void
->asOl();

// If the call is to update the WKT and visualization make an AJAX response
if ($generate) {
if ($request->hasBodyParam('generate')) {
$this->response->addJSON([
'result' => $GLOBALS['result'],
'visualization' => $GLOBALS['visualization'],
Expand Down
2 changes: 1 addition & 1 deletion libraries/classes/Controllers/SchemaExportController.php
Expand Up @@ -32,7 +32,7 @@ public function __construct(Export $export, ResponseRenderer $response)

public function __invoke(ServerRequest $request): void
{
if ($request->getParsedBodyParam('export_type') === null) {
if (! $request->hasBodyParam('export_type')) {
$errorMessage = __('Missing parameter:') . ' export_type'
. MySQLDocumentation::showDocumentation('faq', 'faqmissingparameters', true)
. '[br]';
Expand Down
22 changes: 14 additions & 8 deletions libraries/classes/Controllers/Sql/ColumnPreferencesController.php
Expand Up @@ -11,13 +11,15 @@
use PhpMyAdmin\Message;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Sql;
use PhpMyAdmin\Table;
use PhpMyAdmin\Template;

use function array_map;
use function explode;
use function is_string;

final class ColumnPreferencesController extends AbstractController
{
/** @var Sql */
private $sql;

/** @var CheckUserPrivileges */
private $checkUserPrivileges;

Expand All @@ -32,7 +34,6 @@ public function __construct(
DatabaseInterface $dbi
) {
parent::__construct($response, $template);
$this->sql = $sql;
$this->checkUserPrivileges = $checkUserPrivileges;
$this->dbi = $dbi;
}
Expand All @@ -44,16 +45,21 @@ public function __invoke(ServerRequest $request): void
$tableObject = $this->dbi->getTable($GLOBALS['db'], $GLOBALS['table']);
$status = false;

/** @var string|null $tableCreateTime */
$tableCreateTime = $request->getParsedBodyParam('table_create_time');

// set column order
$colorder = $request->getParsedBodyParam('col_order');
if ($colorder !== null) {
$status = $this->sql->setColumnProperty($tableObject, 'col_order');
if (is_string($colorder)) {
$propertyValue = array_map('intval', explode(',', $colorder));
$status = $tableObject->setUiProp(Table::PROP_COLUMN_ORDER, $propertyValue, $tableCreateTime);
}

// set column visibility
$colvisib = $request->getParsedBodyParam('col_visib');
if ($status === true && $colvisib !== null) {
$status = $this->sql->setColumnProperty($tableObject, 'col_visib');
if ($status === true && is_string($colvisib)) {
$propertyValue = array_map('intval', explode(',', $colvisib));
$status = $tableObject->setUiProp(Table::PROP_COLUMN_ORDER, $propertyValue, $tableCreateTime);
}

if ($status instanceof Message) {
Expand Down
3 changes: 1 addition & 2 deletions libraries/classes/Controllers/Sql/SetValuesController.php
Expand Up @@ -44,7 +44,6 @@ public function __invoke(ServerRequest $request): void

$column = $request->getParsedBodyParam('column');
$currentValue = $request->getParsedBodyParam('curr_value');
$fullValues = $request->getParsedBodyParam('get_full_values', false);
$whereClause = $request->getParsedBodyParam('where_clause');

$values = $this->sql->getValuesForColumn($GLOBALS['db'], $GLOBALS['table'], $column);
Expand All @@ -57,7 +56,7 @@ public function __invoke(ServerRequest $request): void
}

// If the $currentValue was truncated, we should fetch the correct full values from the table.
if ($fullValues && ! empty($whereClause)) {
if ($request->hasBodyParam('get_full_values') && ! empty($whereClause)) {
$currentValue = $this->sql->getFullValuesForSetColumn(
$GLOBALS['db'],
$GLOBALS['table'],
Expand Down
6 changes: 3 additions & 3 deletions libraries/classes/Controllers/Sql/SqlController.php
Expand Up @@ -191,9 +191,9 @@ public function __invoke(ServerRequest $request): void
/**
* Bookmark add
*/
$store_bkm = $request->getParsedBodyParam('store_bkm');
$bkm_all_users = $request->getParsedBodyParam('bkm_all_users');
if ($store_bkm !== null && $bkm_fields !== null) {
$store_bkm = $request->hasBodyParam('store_bkm');
$bkm_all_users = $request->getParsedBodyParam('bkm_all_users'); // Should this be hasBodyParam?
if ($store_bkm && $bkm_fields !== null) {
$this->addBookmark($GLOBALS['goto'], $bkm_fields, (bool) $bkm_all_users);

return;
Expand Down
Expand Up @@ -15,6 +15,7 @@

use function __;
use function count;
use function is_array;

final class AddIndexController extends AbstractController
{
Expand All @@ -41,7 +42,7 @@ public function __invoke(ServerRequest $request): void

$selected = $request->getParsedBodyParam('selected_fld', []);

if (empty($selected)) {
if (! is_array($selected) || $selected === []) {
$this->response->setRequestStatus(false);
$this->response->addJSON('message', __('No column selected.'));

Expand Down
Expand Up @@ -13,6 +13,7 @@
use PhpMyAdmin\Template;

use function __;
use function is_array;

final class CentralColumnsAddController extends AbstractController
{
Expand All @@ -39,7 +40,7 @@ public function __invoke(ServerRequest $request): void

$selected = $request->getParsedBodyParam('selected_fld', []);

if (empty($selected)) {
if (! is_array($selected) || $selected === []) {
$this->response->setRequestStatus(false);
$this->response->addJSON('message', __('No column selected.'));

Expand Down
Expand Up @@ -13,6 +13,7 @@
use PhpMyAdmin\Template;

use function __;
use function is_array;

final class CentralColumnsRemoveController extends AbstractController
{
Expand All @@ -39,7 +40,7 @@ public function __invoke(ServerRequest $request): void

$selected = $request->getParsedBodyParam('selected_fld', []);

if (empty($selected)) {
if (! is_array($selected) || $selected === []) {
$this->response->setRequestStatus(false);
$this->response->addJSON('message', __('No column selected.'));

Expand Down
Expand Up @@ -15,6 +15,7 @@

use function __;
use function count;
use function is_array;

final class FulltextController extends AbstractController
{
Expand All @@ -41,7 +42,7 @@ public function __invoke(ServerRequest $request): void

$selected = $request->getParsedBodyParam('selected_fld', []);

if (empty($selected)) {
if (! is_array($selected) || $selected === []) {
$this->response->setRequestStatus(false);
$this->response->addJSON('message', __('No column selected.'));

Expand Down
Expand Up @@ -45,7 +45,7 @@ public function __construct(
public function __invoke(ServerRequest $request): void
{
$move_columns = $request->getParsedBodyParam('move_columns');
if (! isset($move_columns) || ! is_array($move_columns) || ! $this->response->isAjax()) {
if (! is_array($move_columns) || ! $this->response->isAjax()) {
return;
}

Expand Down
Expand Up @@ -15,6 +15,7 @@

use function __;
use function count;
use function is_array;

final class SpatialController extends AbstractController
{
Expand All @@ -41,7 +42,7 @@ public function __invoke(ServerRequest $request): void

$selected = $request->getParsedBodyParam('selected_fld', []);

if (empty($selected)) {
if (! is_array($selected) || $selected === []) {
$this->response->setRequestStatus(false);
$this->response->addJSON('message', __('No column selected.'));

Expand Down
Expand Up @@ -15,6 +15,7 @@

use function __;
use function count;
use function is_array;

final class UniqueController extends AbstractController
{
Expand All @@ -41,7 +42,7 @@ public function __invoke(ServerRequest $request): void

$selected = $request->getParsedBodyParam('selected_fld', []);

if (empty($selected)) {
if (! is_array($selected) || $selected === []) {
$this->response->setRequestStatus(false);
$this->response->addJSON('message', __('No column selected.'));

Expand Down
18 changes: 7 additions & 11 deletions libraries/classes/Controllers/Table/TrackingController.php
Expand Up @@ -96,14 +96,14 @@ public function __invoke(ServerRequest $request): void
$GLOBALS['selection_data'] = false;
$GLOBALS['selection_both'] = false;

$report = $request->getParsedBodyParam('report');
$report = $request->hasBodyParam('report');
/** @var string $versionParam */
$versionParam = $request->getParsedBodyParam('version');
/** @var string $tableParam */
$tableParam = $request->getParsedBodyParam('table');

// Init vars for tracking report
if ($report !== null || $reportExport !== null) {
if ($report || $reportExport !== null) {
$GLOBALS['data'] = Tracker::getTrackedData(
$GLOBALS['db'],
$GLOBALS['table'],
Expand Down Expand Up @@ -170,7 +170,7 @@ public function __invoke(ServerRequest $request): void
}

$deleteVersion = '';
if ($request->getParsedBodyParam('submit_delete_version') !== null) {
if ($request->hasBodyParam('submit_delete_version')) {
$deleteVersion = $this->tracking->deleteTrackingVersion(
$GLOBALS['db'],
$GLOBALS['table'],
Expand All @@ -179,7 +179,7 @@ public function __invoke(ServerRequest $request): void
}

$createVersion = '';
if ($request->getParsedBodyParam('submit_create_version') !== null) {
if ($request->hasBodyParam('submit_create_version')) {
$createVersion = $this->tracking->createTrackingVersion(
$GLOBALS['db'],
$GLOBALS['table'],
Expand Down Expand Up @@ -220,7 +220,7 @@ public function __invoke(ServerRequest $request): void
}

$schemaSnapshot = '';
if ($request->getParsedBodyParam('snapshot') !== null) {
if ($request->hasBodyParam('snapshot')) {
/** @var string $db */
$db = $request->getParsedBodyParam('db');
$schemaSnapshot = $this->tracking->getHtmlForSchemaSnapshot(
Expand All @@ -232,11 +232,7 @@ public function __invoke(ServerRequest $request): void
}

$trackingReportRows = '';
if (
$report !== null
&& ($request->getParsedBodyParam('delete_ddlog') !== null
|| $request->getParsedBodyParam('delete_dmlog') !== null)
) {
if ($report && ($request->hasBodyParam('delete_ddlog') || $request->hasBodyParam('delete_dmlog'))) {
$trackingReportRows = $this->tracking->deleteTrackingReportRows(
$GLOBALS['db'],
$GLOBALS['table'],
Expand All @@ -248,7 +244,7 @@ public function __invoke(ServerRequest $request): void
}

$trackingReport = '';
if ($report !== null || $reportExport !== null) {
if ($report || $reportExport !== null) {
$trackingReport = $this->tracking->getHtmlForTrackingReport(
$GLOBALS['data'],
$GLOBALS['urlParams'],
Expand Down
2 changes: 1 addition & 1 deletion libraries/classes/Controllers/TableController.php
Expand Up @@ -23,7 +23,7 @@ public function __construct(ResponseRenderer $response, Template $template, Data

public function __invoke(ServerRequest $request): void
{
if ($request->getParsedBodyParam('db') === null) {
if (! $request->hasBodyParam('db')) {
$this->response->setRequestStatus(false);
$this->response->addJSON(['message' => Message::error()]);

Expand Down

0 comments on commit 959849f

Please sign in to comment.