Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/phpmyadmin/phpmyadmin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKamil Tekiela <tekiela246@gmail.com>2022-09-07 17:30:39 +0300
committerKamil Tekiela <tekiela246@gmail.com>2022-09-07 17:35:56 +0300
commitf471e7f8e36a0cdb4f7b9aa3098e5aefc418bcb9 (patch)
treeef287e95644c0e9d97091253de39002f24c8af0d
parent262e3e8129b2b6ef4149f4b1b4939f7f30e9b646 (diff)
Clean up autocomplete controller
Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>
-rw-r--r--js/src/functions.js2
-rw-r--r--libraries/classes/Controllers/Database/SqlAutoCompleteController.php15
-rw-r--r--phpstan-baseline.neon10
-rw-r--r--psalm-baseline.xml7
4 files changed, 20 insertions, 14 deletions
diff --git a/js/src/functions.js b/js/src/functions.js
index 4fded3bd23..3577ca0180 100644
--- a/js/src/functions.js
+++ b/js/src/functions.js
@@ -1321,7 +1321,7 @@ Functions.codeMirrorAutoCompleteOnInputRead = function (instance) {
data: params,
success: function (data) {
if (data.success) {
- var tables = JSON.parse(data.tables);
+ var tables = data.tables;
sqlAutoCompleteDefaultTable = window.CommonParams.get('table');
sqlAutoComplete = [];
for (var table in tables) {
diff --git a/libraries/classes/Controllers/Database/SqlAutoCompleteController.php b/libraries/classes/Controllers/Database/SqlAutoCompleteController.php
index 1d20f2b4c7..23cdf87cc5 100644
--- a/libraries/classes/Controllers/Database/SqlAutoCompleteController.php
+++ b/libraries/classes/Controllers/Database/SqlAutoCompleteController.php
@@ -10,8 +10,6 @@ use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Template;
-use function json_encode;
-
/**
* Table/Column autocomplete in SQL editors.
*/
@@ -28,18 +26,17 @@ class SqlAutoCompleteController extends AbstractController
public function __invoke(ServerRequest $request): void
{
- $GLOBALS['sql_autocomplete'] = true;
+ $sqlAutocomplete = [];
if ($GLOBALS['cfg']['EnableAutocompleteForTablesAndColumns']) {
- $GLOBALS['db'] = $_POST['db'] ?? $GLOBALS['db'];
- $GLOBALS['sql_autocomplete'] = [];
- if ($GLOBALS['db']) {
- $tableNames = $this->dbi->getTables($GLOBALS['db']);
+ $db = $request->getParam('db', $GLOBALS['db']);
+ if ($db) {
+ $tableNames = $this->dbi->getTables($db);
foreach ($tableNames as $tableName) {
- $GLOBALS['sql_autocomplete'][$tableName] = $this->dbi->getColumns($GLOBALS['db'], $tableName);
+ $sqlAutocomplete[$tableName] = $this->dbi->getColumns($db, $tableName);
}
}
}
- $this->response->addJSON(['tables' => json_encode($GLOBALS['sql_autocomplete'])]);
+ $this->response->addJSON(['tables' => $sqlAutocomplete]);
}
}
diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon
index 0a7dd54ec2..2ed643ebcf 100644
--- a/phpstan-baseline.neon
+++ b/phpstan-baseline.neon
@@ -1026,6 +1026,16 @@ parameters:
path: libraries/classes/Controllers/Database/OperationsController.php
-
+ message: "#^Parameter \\#1 \\$database of method PhpMyAdmin\\\\DatabaseInterface\\:\\:getColumns\\(\\) expects string, mixed given\\.$#"
+ count: 1
+ path: libraries/classes/Controllers/Database/SqlAutoCompleteController.php
+
+ -
+ message: "#^Parameter \\#1 \\$database of method PhpMyAdmin\\\\DatabaseInterface\\:\\:getTables\\(\\) expects string, mixed given\\.$#"
+ count: 1
+ path: libraries/classes/Controllers/Database/SqlAutoCompleteController.php
+
+ -
message: "#^Cannot access offset non\\-empty\\-string on mixed\\.$#"
count: 1
path: libraries/classes/Controllers/Database/Structure/FavoriteTableController.php
diff --git a/psalm-baseline.xml b/psalm-baseline.xml
index 1fcdd687e6..2be64631a1 100644
--- a/psalm-baseline.xml
+++ b/psalm-baseline.xml
@@ -1373,13 +1373,12 @@
<InvalidArrayOffset occurrences="1">
<code>$GLOBALS['cfg']['EnableAutocompleteForTablesAndColumns']</code>
</InvalidArrayOffset>
- <MixedArgument occurrences="3">
- <code>$GLOBALS['db']</code>
- <code>$GLOBALS['db']</code>
+ <MixedArgument occurrences="2">
+ <code>$db</code>
<code>$tableName</code>
</MixedArgument>
<MixedAssignment occurrences="2">
- <code>$GLOBALS['db']</code>
+ <code>$db</code>
<code>$tableName</code>
</MixedAssignment>
</file>