Skip to content

Commit 5c98471

Browse files
Merge pull request #18453 from kamil-tekiela/quoteString
Use quoteString in CentralColumns
2 parents 9b2f083 + 42c3d84 commit 5c98471

11 files changed

Lines changed: 109 additions & 200 deletions

File tree

‎libraries/classes/Controllers/Database/CentralColumnsController.php‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
use PhpMyAdmin\Message;
1414
use PhpMyAdmin\ResponseRenderer;
1515
use PhpMyAdmin\Template;
16+
use Webmozart\Assert\Assert;
1617

1718
use function __;
1819
use function is_bool;
@@ -253,6 +254,8 @@ public function addColumn(array $params): bool|Message
253254
/** @param mixed[] $params Request parameters */
254255
public function editPage(array $params): void
255256
{
257+
Assert::isArray($params['selected_fld']);
258+
Assert::allString($params['selected_fld']);
256259
$rows = $this->centralColumns->getHtmlForEditingPage($params['selected_fld'], $params['db']);
257260

258261
$this->render('database/central_columns/edit', ['rows' => $rows]);
@@ -278,6 +281,9 @@ public function deleteSave(array $params): bool|Message
278281
$name = [];
279282
parse_str($params['col_name'], $name);
280283

284+
Assert::isArray($name['selected_fld']);
285+
Assert::allString($name['selected_fld']);
286+
281287
return $this->centralColumns->deleteColumnsFromList($params['db'], $name['selected_fld'], false);
282288
}
283289
}

‎libraries/classes/Controllers/Database/Structure/CentralColumns/AddController.php‎

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,10 @@
1212
use PhpMyAdmin\Message;
1313
use PhpMyAdmin\ResponseRenderer;
1414
use PhpMyAdmin\Template;
15+
use Webmozart\Assert\Assert;
1516

1617
use function __;
18+
use function is_array;
1719

1820
final class AddController extends AbstractController
1921
{
@@ -30,15 +32,17 @@ public function __invoke(ServerRequest $request): void
3032
{
3133
$GLOBALS['message'] ??= null;
3234

33-
$selected = $_POST['selected_tbl'] ?? [];
35+
$selected = $request->getParsedBodyParam('selected_tbl', []);
3436

35-
if (empty($selected)) {
37+
if (! is_array($selected) || $selected === []) {
3638
$this->response->setRequestStatus(false);
3739
$this->response->addJSON('message', __('No table selected.'));
3840

3941
return;
4042
}
4143

44+
Assert::allString($selected);
45+
4246
$centralColumns = new CentralColumns($this->dbi);
4347
$error = $centralColumns->syncUniqueColumns($selected);
4448

‎libraries/classes/Controllers/Database/Structure/CentralColumns/MakeConsistentController.php‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
use PhpMyAdmin\Message;
1313
use PhpMyAdmin\ResponseRenderer;
1414
use PhpMyAdmin\Template;
15+
use Webmozart\Assert\Assert;
1516

1617
use function __;
1718
use function is_array;
@@ -31,7 +32,7 @@ public function __invoke(ServerRequest $request): void
3132
{
3233
$GLOBALS['message'] ??= null;
3334

34-
$selected = $_POST['selected_tbl'] ?? [];
35+
$selected = $request->getParsedBodyParam('selected_tbl', []);
3536

3637
if (! is_array($selected) || $selected === []) {
3738
$this->response->setRequestStatus(false);
@@ -40,6 +41,8 @@ public function __invoke(ServerRequest $request): void
4041
return;
4142
}
4243

44+
Assert::allString($selected);
45+
4346
$centralColumns = new CentralColumns($this->dbi);
4447
$error = $centralColumns->makeConsistentWithList($GLOBALS['db'], $selected);
4548

‎libraries/classes/Controllers/Database/Structure/CentralColumns/RemoveController.php‎

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,10 @@
1212
use PhpMyAdmin\Message;
1313
use PhpMyAdmin\ResponseRenderer;
1414
use PhpMyAdmin\Template;
15+
use Webmozart\Assert\Assert;
1516

1617
use function __;
18+
use function is_array;
1719

1820
final class RemoveController extends AbstractController
1921
{
@@ -30,15 +32,17 @@ public function __invoke(ServerRequest $request): void
3032
{
3133
$GLOBALS['message'] ??= null;
3234

33-
$selected = $_POST['selected_tbl'] ?? [];
35+
$selected = $request->getParsedBodyParam('selected_tbl', []);
3436

35-
if (empty($selected)) {
37+
if (! is_array($selected) || $selected === []) {
3638
$this->response->setRequestStatus(false);
3739
$this->response->addJSON('message', __('No table selected.'));
3840

3941
return;
4042
}
4143

44+
Assert::allString($selected);
45+
4246
$centralColumns = new CentralColumns($this->dbi);
4347
$error = $centralColumns->deleteColumnsFromList($_POST['db'], $selected);
4448

‎libraries/classes/Controllers/Table/Structure/CentralColumnsAddController.php‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
use PhpMyAdmin\Message;
1212
use PhpMyAdmin\ResponseRenderer;
1313
use PhpMyAdmin\Template;
14+
use Webmozart\Assert\Assert;
1415

1516
use function __;
1617
use function is_array;
@@ -39,6 +40,8 @@ public function __invoke(ServerRequest $request): void
3940
return;
4041
}
4142

43+
Assert::allString($selected);
44+
4245
$centralColsError = $this->centralColumns->syncUniqueColumns($selected, false);
4346

4447
if ($centralColsError instanceof Message) {

‎libraries/classes/Controllers/Table/Structure/CentralColumnsRemoveController.php‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
use PhpMyAdmin\Message;
1212
use PhpMyAdmin\ResponseRenderer;
1313
use PhpMyAdmin\Template;
14+
use Webmozart\Assert\Assert;
1415

1516
use function __;
1617
use function is_array;
@@ -39,6 +40,8 @@ public function __invoke(ServerRequest $request): void
3940
return;
4041
}
4142

43+
Assert::allString($selected);
44+
4245
$centralColsError = $this->centralColumns->deleteColumnsFromList($GLOBALS['db'], $selected, false);
4346

4447
if ($centralColsError instanceof Message) {

0 commit comments

Comments
 (0)