Use ServerRequest

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>
This commit is contained in:
Kamil Tekiela 2024-11-10 19:30:12 +00:00 committed by Maurício Meneghini Fauth
parent 81e9832aca
commit db7ce67a21
4 changed files with 10 additions and 17 deletions

View File

@ -3300,12 +3300,7 @@ parameters:
-
message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#"
count: 4
path: src/Controllers/Table/ChangeController.php
-
message: "#^Method PhpMyAdmin\\\\Controllers\\\\Table\\\\ChangeController\\:\\:urlParamsInEditMode\\(\\) should return array\\<string, bool\\|int\\|string\\> but returns array\\<string, mixed\\>\\.$#"
count: 1
count: 3
path: src/Controllers/Table/ChangeController.php
-

View File

@ -2892,12 +2892,6 @@
<code><![CDATA[$GLOBALS['unsaved_values']]]></code>
<code><![CDATA[$GLOBALS['where_clause']]]></code>
</InvalidArrayOffset>
<InvalidReturnStatement>
<code><![CDATA[$urlParams]]></code>
</InvalidReturnStatement>
<InvalidReturnType>
<code><![CDATA[array<string, bool|int|string>]]></code>
</InvalidReturnType>
<MixedArgument>
<code><![CDATA[$GLOBALS['disp_message']]]></code>
<code><![CDATA[$GLOBALS['unsaved_values']]]></code>
@ -2937,7 +2931,6 @@
<code><![CDATA[empty($GLOBALS['disp_message'])]]></code>
<code><![CDATA[empty($GLOBALS['goto'])]]></code>
<code><![CDATA[empty($GLOBALS['unsaved_values'])]]></code>
<code><![CDATA[empty($_POST['sql_query'])]]></code>
</RiskyTruthyFalsyComparison>
</file>
<file src="src/Controllers/Table/ChangeRowsController.php">

View File

@ -194,7 +194,7 @@ class ChangeController implements InvocableController
UrlParams::$params['db'] = Current::$database;
UrlParams::$params['table'] = Current::$table;
UrlParams::$params = $this->urlParamsInEditMode(UrlParams::$params, $whereClauseArray);
UrlParams::$params = $this->urlParamsInEditMode($request, UrlParams::$params, $whereClauseArray);
$hasBlobField = false;
foreach ($tableColumns as $tableColumn) {
@ -301,6 +301,7 @@ class ChangeController implements InvocableController
* @return array<string, bool|int|string> Add some url parameters to $url_params array and return it
*/
public function urlParamsInEditMode(
ServerRequest $request,
array $urlParams,
array $whereClauseArray,
): array {
@ -308,8 +309,9 @@ class ChangeController implements InvocableController
$urlParams['where_clause'] = trim($whereClause);
}
if (! empty($_POST['sql_query'])) {
$urlParams['sql_query'] = $_POST['sql_query'];
$sqlQuery = $request->getParsedBodyParamAsString('sql_query', '');
if ($sqlQuery !== '') {
$urlParams['sql_query'] = $sqlQuery;
}
return $urlParams;

View File

@ -201,7 +201,10 @@ final class ChangeControllerTest extends AbstractTestCase
$whereClauseArray = ['foo=1', 'bar=2'];
$_POST['sql_query'] = 'SELECT 1';
$result = $changeController->urlParamsInEditMode(['temp' => 1], $whereClauseArray);
$request = ServerRequestFactory::create()->createServerRequest('POST', 'http://example.com/')
->withParsedBody(['sql_query' => 'SELECT 1']);
$result = $changeController->urlParamsInEditMode($request, ['temp' => 1], $whereClauseArray);
self::assertSame(
['temp' => 1, 'where_clause' => 'bar=2', 'sql_query' => 'SELECT 1'],