From fa3e3da7ac263804f299532fdad12f6173ff539a Mon Sep 17 00:00:00 2001 From: Michael Kaufmann Date: Sun, 6 Oct 2019 14:47:04 +0200 Subject: [PATCH] only flush privileges if anything at all happened Signed-off-by: Michael Kaufmann --- lib/Froxlor/Api/Commands/Customers.php | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/Froxlor/Api/Commands/Customers.php b/lib/Froxlor/Api/Commands/Customers.php index 34f386bf..1fb82107 100644 --- a/lib/Froxlor/Api/Commands/Customers.php +++ b/lib/Froxlor/Api/Commands/Customers.php @@ -1067,6 +1067,7 @@ class Customers extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\Resource $dbm = new \Froxlor\Database\DbManager($this->logger()); // For each of them + $priv_changed = false; while ($row_database = $databases_stmt->fetch(\PDO::FETCH_ASSOC)) { if ($last_dbserver != $row_database['dbserver']) { @@ -1087,10 +1088,13 @@ class Customers extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\Resource $dbm->getManager()->enableUser($row_database['databasename'], $mysql_access_host); } } + $priv_changed = true; } // At last flush the new privileges - $dbm->getManager()->flushPrivileges(); + if ($priv_changed) { + $dbm->getManager()->flushPrivileges(); + } Database::needRoot(false); // reactivate/deactivate api-keys @@ -1371,6 +1375,7 @@ class Customers extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\Resource $dbm = new \Froxlor\Database\DbManager($this->logger()); + $priv_changed = false; while ($row_database = $databases_stmt->fetch(\PDO::FETCH_ASSOC)) { if ($last_dbserver != $row_database['dbserver']) { Database::needRoot(true, $row_database['dbserver']); @@ -1378,8 +1383,11 @@ class Customers extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\Resource $last_dbserver = $row_database['dbserver']; } $dbm->getManager()->deleteDatabase($row_database['databasename']); + $priv_changed = true; + } + if ($priv_changed) { + $dbm->getManager()->flushPrivileges(); } - $dbm->getManager()->flushPrivileges(); Database::needRoot(false); // delete customer itself