From 68981b78d717f538f818c581cec4907c0223eb28 Mon Sep 17 00:00:00 2001 From: "Fawzi E. Abdulfattah" Date: Sat, 17 Jul 2021 02:49:07 +0200 Subject: [PATCH] Fixing all the issues related to assigning privileges Signed-off-by: Fawzi E. Abdulfattah --- .../classes/Controllers/Server/PrivilegesController.php | 2 +- libraries/classes/Server/Privileges.php | 9 ++++----- templates/server/privileges/privileges_summary.twig | 2 +- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/libraries/classes/Controllers/Server/PrivilegesController.php b/libraries/classes/Controllers/Server/PrivilegesController.php index 2868dc196f..28d9e73f8b 100644 --- a/libraries/classes/Controllers/Server/PrivilegesController.php +++ b/libraries/classes/Controllers/Server/PrivilegesController.php @@ -229,7 +229,7 @@ class PrivilegesController extends AbstractController ($username ?? ''), ($hostname ?? ''), ($tablename ?? ($routinename ?? '')), - Util::unescapeMysqlWildcards($db_name ?? ''), + ($db_name ?? ''), $itemType ); } diff --git a/libraries/classes/Server/Privileges.php b/libraries/classes/Server/Privileges.php index 778bd014c7..72b6461626 100644 --- a/libraries/classes/Server/Privileges.php +++ b/libraries/classes/Server/Privileges.php @@ -514,8 +514,7 @@ class Privileges return 'SELECT * FROM `mysql`.`db`' . " WHERE `User` = '" . $this->dbi->escapeString($username) . "'" . " AND `Host` = '" . $this->dbi->escapeString($hostname) . "'" - . " AND '" . $this->dbi->escapeString(Util::unescapeMysqlWildcards($db)) . "'" - . ' LIKE `Db`;'; + . " AND `Db` = '" . $this->dbi->escapeString($db) . "'"; } return 'SELECT `Table_priv`' @@ -1589,12 +1588,12 @@ class Privileges ]; switch ($linktype) { case 'edit': - $params['dbname'] = Util::escapeMysqlWildcards($dbname); + $params['dbname'] = $dbname; $params['tablename'] = $tablename; $params['routinename'] = $routinename; break; case 'revoke': - $params['dbname'] = Util::escapeMysqlWildcards($dbname); + $params['dbname'] = $dbname; $params['tablename'] = $tablename; $params['routinename'] = $routinename; $params['revokeall'] = 1; @@ -2926,7 +2925,7 @@ class Privileges } else { $unescaped_db = Util::unescapeMysqlWildcards($dbname); $db_and_table = Util::backquote($unescaped_db) . '.'; - $return_db = $unescaped_db; + $return_db = $dbname; } if (isset($tablename)) { $db_and_table .= Util::backquote($tablename); diff --git a/templates/server/privileges/privileges_summary.twig b/templates/server/privileges/privileges_summary.twig index 5b3b0b3b7f..9ac56a4b79 100644 --- a/templates/server/privileges/privileges_summary.twig +++ b/templates/server/privileges/privileges_summary.twig @@ -56,7 +56,7 @@ {%- if databases is not empty %}