From 60299e46baeef11fa692917db095d1925159d76e Mon Sep 17 00:00:00 2001 From: Kamil Tekiela Date: Sun, 10 Nov 2024 19:13:26 +0000 Subject: [PATCH] Assert in ReplaceController Signed-off-by: Kamil Tekiela --- phpstan-baseline.neon | 7 +------ psalm-baseline.xml | 7 ------- src/Controllers/Table/ReplaceController.php | 16 ++++++++-------- 3 files changed, 9 insertions(+), 21 deletions(-) diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index a7a3e2e5eb..801dc87071 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -3908,7 +3908,7 @@ parameters: - message: "#^Argument of an invalid type mixed supplied for foreach, only iterables are supported\\.$#" - count: 2 + count: 1 path: src/Controllers/Table/ReplaceController.php - @@ -4016,11 +4016,6 @@ parameters: count: 1 path: src/Controllers/Table/ReplaceController.php - - - message: "#^Parameter \\#1 \\$oneWhereClause of method PhpMyAdmin\\\\InsertEdit\\:\\:setSessionForEditNext\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Controllers/Table/ReplaceController.php - - message: "#^Parameter \\#1 \\$query of method PhpMyAdmin\\\\InsertEdit\\:\\:executeSqlQuery\\(\\) expects array, mixed given\\.$#" count: 1 diff --git a/psalm-baseline.xml b/psalm-baseline.xml index c8aaf41782..b12f78b57c 100644 --- a/psalm-baseline.xml +++ b/psalm-baseline.xml @@ -3440,7 +3440,6 @@ - @@ -3485,20 +3484,14 @@ - - - - - - diff --git a/src/Controllers/Table/ReplaceController.php b/src/Controllers/Table/ReplaceController.php index 86654f6e38..d2f5649dbb 100644 --- a/src/Controllers/Table/ReplaceController.php +++ b/src/Controllers/Table/ReplaceController.php @@ -27,6 +27,7 @@ use PhpMyAdmin\Table\Table; use PhpMyAdmin\Transformations; use PhpMyAdmin\UrlParams; use PhpMyAdmin\Util; +use Webmozart\Assert\Assert; use function __; use function array_keys; @@ -75,14 +76,13 @@ final class ReplaceController implements InvocableController $afterInsert = $request->getParsedBodyParamAsStringOrNull('after_insert'); if (in_array($afterInsert, ['new_insert', 'same_insert', 'edit_next'], true)) { UrlParams::$params['after_insert'] = $afterInsert; - $whereClause = $request->getParsedBodyParam('where_clause'); - if ($whereClause !== null) { - foreach ($whereClause as $oneWhereClause) { - if ($afterInsert === 'same_insert') { - UrlParams::$params['where_clause'][] = $oneWhereClause; - } elseif ($afterInsert === 'edit_next') { - $this->insertEdit->setSessionForEditNext($oneWhereClause); - } + $whereClause = $request->getParsedBodyParam('where_clause', []); + Assert::allString($whereClause); + foreach ($whereClause as $oneWhereClause) { + if ($afterInsert === 'same_insert') { + UrlParams::$params['where_clause'][] = $oneWhereClause; + } elseif ($afterInsert === 'edit_next') { + $this->insertEdit->setSessionForEditNext($oneWhereClause); } } }