diff --git a/db_operations.php b/db_operations.php index c13e0d343e..7ba8b094e1 100644 --- a/db_operations.php +++ b/db_operations.php @@ -18,6 +18,7 @@ use PhpMyAdmin\Operations; use PhpMyAdmin\Plugins; use PhpMyAdmin\Plugins\Export\ExportSql; use PhpMyAdmin\Relation; +use PhpMyAdmin\RelationCleanup; use PhpMyAdmin\Response; use PhpMyAdmin\Util; @@ -133,8 +134,7 @@ if (strlen($GLOBALS['db']) > 0 /** * cleanup pmadb stuff for this db */ - include_once 'libraries/relation_cleanup.lib.php'; - PMA_relationsCleanupDatabase($GLOBALS['db']); + RelationCleanup::database($GLOBALS['db']); // if someday the RENAME DATABASE reappears, do not DROP $local_query = 'DROP DATABASE ' diff --git a/libraries/classes/MultSubmits.php b/libraries/classes/MultSubmits.php index 95a646de7a..10ba65e940 100644 --- a/libraries/classes/MultSubmits.php +++ b/libraries/classes/MultSubmits.php @@ -10,6 +10,7 @@ namespace PhpMyAdmin; use PhpMyAdmin\Operations; +use PhpMyAdmin\RelationCleanup; use PhpMyAdmin\Sql; use PhpMyAdmin\Table; use PhpMyAdmin\Transformations; @@ -124,7 +125,7 @@ class MultSubmits break; case 'drop_db': - PMA_relationsCleanupDatabase($selected[$i]); + RelationCleanup::database($selected[$i]); $a_query = 'DROP DATABASE ' . Util::backquote($selected[$i]); $reload = 1; @@ -133,7 +134,7 @@ class MultSubmits break; case 'drop_tbl': - PMA_relationsCleanupTable($db, $selected[$i]); + RelationCleanup::table($db, $selected[$i]); $current = $selected[$i]; if (!empty($views) && in_array($current, $views)) { $sql_query_views .= (empty($sql_query_views) ? 'DROP VIEW ' : ', ') @@ -183,7 +184,7 @@ class MultSubmits break; case 'drop_fld': - PMA_relationsCleanupColumn($db, $table, $selected[$i]); + RelationCleanup::column($db, $table, $selected[$i]); $sql_query .= (empty($sql_query) ? 'ALTER TABLE ' . Util::backquote($table) : ',') diff --git a/libraries/classes/RelationCleanup.php b/libraries/classes/RelationCleanup.php new file mode 100644 index 0000000000..d84690fdc6 --- /dev/null +++ b/libraries/classes/RelationCleanup.php @@ -0,0 +1,367 @@ +escapeString($db) . '\'' + . ' AND table_name = \'' . $GLOBALS['dbi']->escapeString($table) + . '\'' + . ' AND column_name = \'' . $GLOBALS['dbi']->escapeString($column) + . '\''; + Relation::queryAsControlUser($remove_query); + } + + if ($cfgRelation['displaywork']) { + $remove_query = 'DELETE FROM ' + . Util::backquote($cfgRelation['db']) + . '.' . Util::backquote($cfgRelation['table_info']) + . ' WHERE db_name = \'' . $GLOBALS['dbi']->escapeString($db) . '\'' + . ' AND table_name = \'' . $GLOBALS['dbi']->escapeString($table) + . '\'' + . ' AND display_field = \'' . $GLOBALS['dbi']->escapeString($column) + . '\''; + Relation::queryAsControlUser($remove_query); + } + + if ($cfgRelation['relwork']) { + $remove_query = 'DELETE FROM ' + . Util::backquote($cfgRelation['db']) + . '.' . Util::backquote($cfgRelation['relation']) + . ' WHERE master_db = \'' . $GLOBALS['dbi']->escapeString($db) + . '\'' + . ' AND master_table = \'' . $GLOBALS['dbi']->escapeString($table) + . '\'' + . ' AND master_field = \'' . $GLOBALS['dbi']->escapeString($column) + . '\''; + Relation::queryAsControlUser($remove_query); + + $remove_query = 'DELETE FROM ' + . Util::backquote($cfgRelation['db']) + . '.' . Util::backquote($cfgRelation['relation']) + . ' WHERE foreign_db = \'' . $GLOBALS['dbi']->escapeString($db) + . '\'' + . ' AND foreign_table = \'' . $GLOBALS['dbi']->escapeString($table) + . '\'' + . ' AND foreign_field = \'' . $GLOBALS['dbi']->escapeString($column) + . '\''; + Relation::queryAsControlUser($remove_query); + } + } + + /** + * Cleanup table related relation stuff + * + * @param string $db database name + * @param string $table table name + * + * @return void + */ + public static function table($db, $table) + { + $cfgRelation = Relation::getRelationsParam(); + + if ($cfgRelation['commwork']) { + $remove_query = 'DELETE FROM ' + . Util::backquote($cfgRelation['db']) + . '.' . Util::backquote($cfgRelation['column_info']) + . ' WHERE db_name = \'' . $GLOBALS['dbi']->escapeString($db) . '\'' + . ' AND table_name = \'' . $GLOBALS['dbi']->escapeString($table) + . '\''; + Relation::queryAsControlUser($remove_query); + } + + if ($cfgRelation['displaywork']) { + $remove_query = 'DELETE FROM ' + . Util::backquote($cfgRelation['db']) + . '.' . Util::backquote($cfgRelation['table_info']) + . ' WHERE db_name = \'' . $GLOBALS['dbi']->escapeString($db) . '\'' + . ' AND table_name = \'' . $GLOBALS['dbi']->escapeString($table) + . '\''; + Relation::queryAsControlUser($remove_query); + } + + if ($cfgRelation['pdfwork']) { + $remove_query = 'DELETE FROM ' + . Util::backquote($cfgRelation['db']) + . '.' . Util::backquote($cfgRelation['table_coords']) + . ' WHERE db_name = \'' . $GLOBALS['dbi']->escapeString($db) . '\'' + . ' AND table_name = \'' . $GLOBALS['dbi']->escapeString($table) + . '\''; + Relation::queryAsControlUser($remove_query); + } + + if ($cfgRelation['relwork']) { + $remove_query = 'DELETE FROM ' + . Util::backquote($cfgRelation['db']) + . '.' . Util::backquote($cfgRelation['relation']) + . ' WHERE master_db = \'' . $GLOBALS['dbi']->escapeString($db) + . '\'' + . ' AND master_table = \'' . $GLOBALS['dbi']->escapeString($table) + . '\''; + Relation::queryAsControlUser($remove_query); + + $remove_query = 'DELETE FROM ' + . Util::backquote($cfgRelation['db']) + . '.' . Util::backquote($cfgRelation['relation']) + . ' WHERE foreign_db = \'' . $GLOBALS['dbi']->escapeString($db) + . '\'' + . ' AND foreign_table = \'' . $GLOBALS['dbi']->escapeString($table) + . '\''; + Relation::queryAsControlUser($remove_query); + } + + if ($cfgRelation['uiprefswork']) { + $remove_query = 'DELETE FROM ' + . Util::backquote($cfgRelation['db']) + . '.' . Util::backquote($cfgRelation['table_uiprefs']) + . ' WHERE db_name = \'' . $GLOBALS['dbi']->escapeString($db) . '\'' + . ' AND table_name = \'' . $GLOBALS['dbi']->escapeString($table) + . '\''; + Relation::queryAsControlUser($remove_query); + } + + if ($cfgRelation['navwork']) { + $remove_query = 'DELETE FROM ' + . Util::backquote($cfgRelation['db']) + . '.' . Util::backquote($cfgRelation['navigationhiding']) + . ' WHERE db_name = \'' . $GLOBALS['dbi']->escapeString($db) . '\'' + . ' AND (table_name = \'' . $GLOBALS['dbi']->escapeString($table) + . '\'' + . ' OR (item_name = \'' . $GLOBALS['dbi']->escapeString($table) + . '\'' + . ' AND item_type = \'table\'))'; + Relation::queryAsControlUser($remove_query); + } + } + + /** + * Cleanup database related relation stuff + * + * @param string $db database name + * + * @return void + */ + public static function database($db) + { + $cfgRelation = Relation::getRelationsParam(); + + if ($cfgRelation['commwork']) { + $remove_query = 'DELETE FROM ' + . Util::backquote($cfgRelation['db']) + . '.' . Util::backquote($cfgRelation['column_info']) + . ' WHERE db_name = \'' . $GLOBALS['dbi']->escapeString($db) . '\''; + Relation::queryAsControlUser($remove_query); + } + + if ($cfgRelation['bookmarkwork']) { + $remove_query = 'DELETE FROM ' + . Util::backquote($cfgRelation['db']) + . '.' . Util::backquote($cfgRelation['bookmark']) + . ' WHERE dbase = \'' . $GLOBALS['dbi']->escapeString($db) . '\''; + Relation::queryAsControlUser($remove_query); + } + + if ($cfgRelation['displaywork']) { + $remove_query = 'DELETE FROM ' + . Util::backquote($cfgRelation['db']) + . '.' . Util::backquote($cfgRelation['table_info']) + . ' WHERE db_name = \'' . $GLOBALS['dbi']->escapeString($db) . '\''; + Relation::queryAsControlUser($remove_query); + } + + if ($cfgRelation['pdfwork']) { + $remove_query = 'DELETE FROM ' + . Util::backquote($cfgRelation['db']) + . '.' . Util::backquote($cfgRelation['pdf_pages']) + . ' WHERE db_name = \'' . $GLOBALS['dbi']->escapeString($db) . '\''; + Relation::queryAsControlUser($remove_query); + + $remove_query = 'DELETE FROM ' + . Util::backquote($cfgRelation['db']) + . '.' . Util::backquote($cfgRelation['table_coords']) + . ' WHERE db_name = \'' . $GLOBALS['dbi']->escapeString($db) . '\''; + Relation::queryAsControlUser($remove_query); + } + + if ($cfgRelation['relwork']) { + $remove_query = 'DELETE FROM ' + . Util::backquote($cfgRelation['db']) + . '.' . Util::backquote($cfgRelation['relation']) + . ' WHERE master_db = \'' + . $GLOBALS['dbi']->escapeString($db) . '\''; + Relation::queryAsControlUser($remove_query); + + $remove_query = 'DELETE FROM ' + . Util::backquote($cfgRelation['db']) + . '.' . Util::backquote($cfgRelation['relation']) + . ' WHERE foreign_db = \'' . $GLOBALS['dbi']->escapeString($db) + . '\''; + Relation::queryAsControlUser($remove_query); + } + + if ($cfgRelation['uiprefswork']) { + $remove_query = 'DELETE FROM ' + . Util::backquote($cfgRelation['db']) + . '.' . Util::backquote($cfgRelation['table_uiprefs']) + . ' WHERE db_name = \'' . $GLOBALS['dbi']->escapeString($db) . '\''; + Relation::queryAsControlUser($remove_query); + } + + if ($cfgRelation['navwork']) { + $remove_query = 'DELETE FROM ' + . Util::backquote($cfgRelation['db']) + . '.' . Util::backquote($cfgRelation['navigationhiding']) + . ' WHERE db_name = \'' . $GLOBALS['dbi']->escapeString($db) . '\''; + Relation::queryAsControlUser($remove_query); + } + + if ($cfgRelation['savedsearcheswork']) { + $remove_query = 'DELETE FROM ' + . Util::backquote($cfgRelation['db']) + . '.' . Util::backquote($cfgRelation['savedsearches']) + . ' WHERE db_name = \'' . $GLOBALS['dbi']->escapeString($db) . '\''; + Relation::queryAsControlUser($remove_query); + } + + if ($cfgRelation['centralcolumnswork']) { + $remove_query = 'DELETE FROM ' + . Util::backquote($cfgRelation['db']) + . '.' . Util::backquote($cfgRelation['central_columns']) + . ' WHERE db_name = \'' . $GLOBALS['dbi']->escapeString($db) . '\''; + Relation::queryAsControlUser($remove_query); + } + } + + /** + * Cleanup user related relation stuff + * + * @param string $username username + * + * @return void + */ + public static function user($username) + { + $cfgRelation = Relation::getRelationsParam(); + + if ($cfgRelation['bookmarkwork']) { + $remove_query = "DELETE FROM " + . Util::backquote($cfgRelation['db']) + . "." . Util::backquote($cfgRelation['bookmark']) + . " WHERE `user` = '" . $GLOBALS['dbi']->escapeString($username) + . "'"; + Relation::queryAsControlUser($remove_query); + } + + if ($cfgRelation['historywork']) { + $remove_query = "DELETE FROM " + . Util::backquote($cfgRelation['db']) + . "." . Util::backquote($cfgRelation['history']) + . " WHERE `username` = '" . $GLOBALS['dbi']->escapeString($username) + . "'"; + Relation::queryAsControlUser($remove_query); + } + + if ($cfgRelation['recentwork']) { + $remove_query = "DELETE FROM " + . Util::backquote($cfgRelation['db']) + . "." . Util::backquote($cfgRelation['recent']) + . " WHERE `username` = '" . $GLOBALS['dbi']->escapeString($username) + . "'"; + Relation::queryAsControlUser($remove_query); + } + + if ($cfgRelation['favoritework']) { + $remove_query = "DELETE FROM " + . Util::backquote($cfgRelation['db']) + . "." . Util::backquote($cfgRelation['favorite']) + . " WHERE `username` = '" . $GLOBALS['dbi']->escapeString($username) + . "'"; + Relation::queryAsControlUser($remove_query); + } + + if ($cfgRelation['uiprefswork']) { + $remove_query = "DELETE FROM " + . Util::backquote($cfgRelation['db']) + . "." . Util::backquote($cfgRelation['table_uiprefs']) + . " WHERE `username` = '" . $GLOBALS['dbi']->escapeString($username) + . "'"; + Relation::queryAsControlUser($remove_query); + } + + if ($cfgRelation['userconfigwork']) { + $remove_query = "DELETE FROM " + . Util::backquote($cfgRelation['db']) + . "." . Util::backquote($cfgRelation['userconfig']) + . " WHERE `username` = '" . $GLOBALS['dbi']->escapeString($username) + . "'"; + Relation::queryAsControlUser($remove_query); + } + + if ($cfgRelation['menuswork']) { + $remove_query = "DELETE FROM " + . Util::backquote($cfgRelation['db']) + . "." . Util::backquote($cfgRelation['users']) + . " WHERE `username` = '" . $GLOBALS['dbi']->escapeString($username) + . "'"; + Relation::queryAsControlUser($remove_query); + } + + if ($cfgRelation['navwork']) { + $remove_query = "DELETE FROM " + . Util::backquote($cfgRelation['db']) + . "." . Util::backquote($cfgRelation['navigationhiding']) + . " WHERE `username` = '" . $GLOBALS['dbi']->escapeString($username) + . "'"; + Relation::queryAsControlUser($remove_query); + } + + if ($cfgRelation['savedsearcheswork']) { + $remove_query = "DELETE FROM " + . Util::backquote($cfgRelation['db']) + . "." . Util::backquote($cfgRelation['savedsearches']) + . " WHERE `username` = '" . $GLOBALS['dbi']->escapeString($username) + . "'"; + Relation::queryAsControlUser($remove_query); + } + + if ($cfgRelation['designersettingswork']) { + $remove_query = "DELETE FROM " + . Util::backquote($cfgRelation['db']) + . "." . Util::backquote($cfgRelation['designer_settings']) + . " WHERE `username` = '" . $GLOBALS['dbi']->escapeString($username) + . "'"; + Relation::queryAsControlUser($remove_query); + } + } +} diff --git a/libraries/classes/Server/Privileges.php b/libraries/classes/Server/Privileges.php index df195907c9..473698be0e 100644 --- a/libraries/classes/Server/Privileges.php +++ b/libraries/classes/Server/Privileges.php @@ -12,6 +12,7 @@ use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\Display\ChangePassword; use PhpMyAdmin\Message; use PhpMyAdmin\Relation; +use PhpMyAdmin\RelationCleanup; use PhpMyAdmin\Response; use PhpMyAdmin\Template; use PhpMyAdmin\Url; @@ -4042,7 +4043,7 @@ class Privileges $queries[] = 'DROP USER \'' . $GLOBALS['dbi']->escapeString($this_user) . '\'@\'' . $GLOBALS['dbi']->escapeString($this_host) . '\';'; - PMA_relationsCleanupUser($this_user); + RelationCleanup::user($this_user); if (isset($_REQUEST['drop_users_db'])) { $queries[] = 'DROP DATABASE IF EXISTS ' diff --git a/libraries/classes/Sql.php b/libraries/classes/Sql.php index 1272a7571d..53b9370704 100644 --- a/libraries/classes/Sql.php +++ b/libraries/classes/Sql.php @@ -16,6 +16,7 @@ use PhpMyAdmin\Message; use PhpMyAdmin\Operations; use PhpMyAdmin\ParseAnalyze; use PhpMyAdmin\Relation; +use PhpMyAdmin\RelationCleanup; use PhpMyAdmin\Response; use PhpMyAdmin\SqlParser\Statements\AlterStatement; use PhpMyAdmin\SqlParser\Statements\DropStatement; @@ -1092,17 +1093,15 @@ EOT; */ public static function cleanupRelations($db, $table, $column, $purge) { - include_once 'libraries/relation_cleanup.lib.php'; - if (! empty($purge) && strlen($db) > 0) { if (strlen($table) > 0) { if (isset($column) && strlen($column) > 0) { - PMA_relationsCleanupColumn($db, $table, $column); + RelationCleanup::column($db, $table, $column); } else { - PMA_relationsCleanupTable($db, $table); + RelationCleanup::table($db, $table); } } else { - PMA_relationsCleanupDatabase($db); + RelationCleanup::database($db); } } } diff --git a/libraries/mult_submits.inc.php b/libraries/mult_submits.inc.php index 5f2d086afc..27e2a4805e 100644 --- a/libraries/mult_submits.inc.php +++ b/libraries/mult_submits.inc.php @@ -210,13 +210,6 @@ if (!empty($submit_mult) && !empty($what)) { /** * Executes the query - dropping rows, columns/fields, tables or dbs */ - if ($query_type == 'drop_db' - || $query_type == 'drop_tbl' - || $query_type == 'drop_fld' - ) { - include_once './libraries/relation_cleanup.lib.php'; - } - if ($query_type == 'primary_fld') { // Gets table primary key $GLOBALS['dbi']->selectDb($db); diff --git a/libraries/relation_cleanup.lib.php b/libraries/relation_cleanup.lib.php deleted file mode 100644 index 54290dc811..0000000000 --- a/libraries/relation_cleanup.lib.php +++ /dev/null @@ -1,357 +0,0 @@ -escapeString($db) . '\'' - . ' AND table_name = \'' . $GLOBALS['dbi']->escapeString($table) - . '\'' - . ' AND column_name = \'' . $GLOBALS['dbi']->escapeString($column) - . '\''; - Relation::queryAsControlUser($remove_query); - } - - if ($cfgRelation['displaywork']) { - $remove_query = 'DELETE FROM ' - . PhpMyAdmin\Util::backquote($cfgRelation['db']) - . '.' . PhpMyAdmin\Util::backquote($cfgRelation['table_info']) - . ' WHERE db_name = \'' . $GLOBALS['dbi']->escapeString($db) . '\'' - . ' AND table_name = \'' . $GLOBALS['dbi']->escapeString($table) - . '\'' - . ' AND display_field = \'' . $GLOBALS['dbi']->escapeString($column) - . '\''; - Relation::queryAsControlUser($remove_query); - } - - if ($cfgRelation['relwork']) { - $remove_query = 'DELETE FROM ' - . PhpMyAdmin\Util::backquote($cfgRelation['db']) - . '.' . PhpMyAdmin\Util::backquote($cfgRelation['relation']) - . ' WHERE master_db = \'' . $GLOBALS['dbi']->escapeString($db) - . '\'' - . ' AND master_table = \'' . $GLOBALS['dbi']->escapeString($table) - . '\'' - . ' AND master_field = \'' . $GLOBALS['dbi']->escapeString($column) - . '\''; - Relation::queryAsControlUser($remove_query); - - $remove_query = 'DELETE FROM ' - . PhpMyAdmin\Util::backquote($cfgRelation['db']) - . '.' . PhpMyAdmin\Util::backquote($cfgRelation['relation']) - . ' WHERE foreign_db = \'' . $GLOBALS['dbi']->escapeString($db) - . '\'' - . ' AND foreign_table = \'' . $GLOBALS['dbi']->escapeString($table) - . '\'' - . ' AND foreign_field = \'' . $GLOBALS['dbi']->escapeString($column) - . '\''; - Relation::queryAsControlUser($remove_query); - } -} - -/** - * Cleanup table related relation stuff - * - * @param string $db database name - * @param string $table table name - * - * @return void - */ -function PMA_relationsCleanupTable($db, $table) -{ - $cfgRelation = Relation::getRelationsParam(); - - if ($cfgRelation['commwork']) { - $remove_query = 'DELETE FROM ' - . PhpMyAdmin\Util::backquote($cfgRelation['db']) - . '.' . PhpMyAdmin\Util::backquote($cfgRelation['column_info']) - . ' WHERE db_name = \'' . $GLOBALS['dbi']->escapeString($db) . '\'' - . ' AND table_name = \'' . $GLOBALS['dbi']->escapeString($table) - . '\''; - Relation::queryAsControlUser($remove_query); - } - - if ($cfgRelation['displaywork']) { - $remove_query = 'DELETE FROM ' - . PhpMyAdmin\Util::backquote($cfgRelation['db']) - . '.' . PhpMyAdmin\Util::backquote($cfgRelation['table_info']) - . ' WHERE db_name = \'' . $GLOBALS['dbi']->escapeString($db) . '\'' - . ' AND table_name = \'' . $GLOBALS['dbi']->escapeString($table) - . '\''; - Relation::queryAsControlUser($remove_query); - } - - if ($cfgRelation['pdfwork']) { - $remove_query = 'DELETE FROM ' - . PhpMyAdmin\Util::backquote($cfgRelation['db']) - . '.' . PhpMyAdmin\Util::backquote($cfgRelation['table_coords']) - . ' WHERE db_name = \'' . $GLOBALS['dbi']->escapeString($db) . '\'' - . ' AND table_name = \'' . $GLOBALS['dbi']->escapeString($table) - . '\''; - Relation::queryAsControlUser($remove_query); - } - - if ($cfgRelation['relwork']) { - $remove_query = 'DELETE FROM ' - . PhpMyAdmin\Util::backquote($cfgRelation['db']) - . '.' . PhpMyAdmin\Util::backquote($cfgRelation['relation']) - . ' WHERE master_db = \'' . $GLOBALS['dbi']->escapeString($db) - . '\'' - . ' AND master_table = \'' . $GLOBALS['dbi']->escapeString($table) - . '\''; - Relation::queryAsControlUser($remove_query); - - $remove_query = 'DELETE FROM ' - . PhpMyAdmin\Util::backquote($cfgRelation['db']) - . '.' . PhpMyAdmin\Util::backquote($cfgRelation['relation']) - . ' WHERE foreign_db = \'' . $GLOBALS['dbi']->escapeString($db) - . '\'' - . ' AND foreign_table = \'' . $GLOBALS['dbi']->escapeString($table) - . '\''; - Relation::queryAsControlUser($remove_query); - } - - if ($cfgRelation['uiprefswork']) { - $remove_query = 'DELETE FROM ' - . PhpMyAdmin\Util::backquote($cfgRelation['db']) - . '.' . PhpMyAdmin\Util::backquote($cfgRelation['table_uiprefs']) - . ' WHERE db_name = \'' . $GLOBALS['dbi']->escapeString($db) . '\'' - . ' AND table_name = \'' . $GLOBALS['dbi']->escapeString($table) - . '\''; - Relation::queryAsControlUser($remove_query); - } - - if ($cfgRelation['navwork']) { - $remove_query = 'DELETE FROM ' - . PhpMyAdmin\Util::backquote($cfgRelation['db']) - . '.' . PhpMyAdmin\Util::backquote($cfgRelation['navigationhiding']) - . ' WHERE db_name = \'' . $GLOBALS['dbi']->escapeString($db) . '\'' - . ' AND (table_name = \'' . $GLOBALS['dbi']->escapeString($table) - . '\'' - . ' OR (item_name = \'' . $GLOBALS['dbi']->escapeString($table) - . '\'' - . ' AND item_type = \'table\'))'; - Relation::queryAsControlUser($remove_query); - } -} - -/** - * Cleanup database related relation stuff - * - * @param string $db database name - * - * @return void - */ -function PMA_relationsCleanupDatabase($db) -{ - $cfgRelation = Relation::getRelationsParam(); - - if ($cfgRelation['commwork']) { - $remove_query = 'DELETE FROM ' - . PhpMyAdmin\Util::backquote($cfgRelation['db']) - . '.' . PhpMyAdmin\Util::backquote($cfgRelation['column_info']) - . ' WHERE db_name = \'' . $GLOBALS['dbi']->escapeString($db) . '\''; - Relation::queryAsControlUser($remove_query); - } - - if ($cfgRelation['bookmarkwork']) { - $remove_query = 'DELETE FROM ' - . PhpMyAdmin\Util::backquote($cfgRelation['db']) - . '.' . PhpMyAdmin\Util::backquote($cfgRelation['bookmark']) - . ' WHERE dbase = \'' . $GLOBALS['dbi']->escapeString($db) . '\''; - Relation::queryAsControlUser($remove_query); - } - - if ($cfgRelation['displaywork']) { - $remove_query = 'DELETE FROM ' - . PhpMyAdmin\Util::backquote($cfgRelation['db']) - . '.' . PhpMyAdmin\Util::backquote($cfgRelation['table_info']) - . ' WHERE db_name = \'' . $GLOBALS['dbi']->escapeString($db) . '\''; - Relation::queryAsControlUser($remove_query); - } - - if ($cfgRelation['pdfwork']) { - $remove_query = 'DELETE FROM ' - . PhpMyAdmin\Util::backquote($cfgRelation['db']) - . '.' . PhpMyAdmin\Util::backquote($cfgRelation['pdf_pages']) - . ' WHERE db_name = \'' . $GLOBALS['dbi']->escapeString($db) . '\''; - Relation::queryAsControlUser($remove_query); - - $remove_query = 'DELETE FROM ' - . PhpMyAdmin\Util::backquote($cfgRelation['db']) - . '.' . PhpMyAdmin\Util::backquote($cfgRelation['table_coords']) - . ' WHERE db_name = \'' . $GLOBALS['dbi']->escapeString($db) . '\''; - Relation::queryAsControlUser($remove_query); - } - - if ($cfgRelation['relwork']) { - $remove_query = 'DELETE FROM ' - . PhpMyAdmin\Util::backquote($cfgRelation['db']) - . '.' . PhpMyAdmin\Util::backquote($cfgRelation['relation']) - . ' WHERE master_db = \'' - . $GLOBALS['dbi']->escapeString($db) . '\''; - Relation::queryAsControlUser($remove_query); - - $remove_query = 'DELETE FROM ' - . PhpMyAdmin\Util::backquote($cfgRelation['db']) - . '.' . PhpMyAdmin\Util::backquote($cfgRelation['relation']) - . ' WHERE foreign_db = \'' . $GLOBALS['dbi']->escapeString($db) - . '\''; - Relation::queryAsControlUser($remove_query); - } - - if ($cfgRelation['uiprefswork']) { - $remove_query = 'DELETE FROM ' - . PhpMyAdmin\Util::backquote($cfgRelation['db']) - . '.' . PhpMyAdmin\Util::backquote($cfgRelation['table_uiprefs']) - . ' WHERE db_name = \'' . $GLOBALS['dbi']->escapeString($db) . '\''; - Relation::queryAsControlUser($remove_query); - } - - if ($cfgRelation['navwork']) { - $remove_query = 'DELETE FROM ' - . PhpMyAdmin\Util::backquote($cfgRelation['db']) - . '.' . PhpMyAdmin\Util::backquote($cfgRelation['navigationhiding']) - . ' WHERE db_name = \'' . $GLOBALS['dbi']->escapeString($db) . '\''; - Relation::queryAsControlUser($remove_query); - } - - if ($cfgRelation['savedsearcheswork']) { - $remove_query = 'DELETE FROM ' - . PhpMyAdmin\Util::backquote($cfgRelation['db']) - . '.' . PhpMyAdmin\Util::backquote($cfgRelation['savedsearches']) - . ' WHERE db_name = \'' . $GLOBALS['dbi']->escapeString($db) . '\''; - Relation::queryAsControlUser($remove_query); - } - - if ($cfgRelation['centralcolumnswork']) { - $remove_query = 'DELETE FROM ' - . PhpMyAdmin\Util::backquote($cfgRelation['db']) - . '.' . PhpMyAdmin\Util::backquote($cfgRelation['central_columns']) - . ' WHERE db_name = \'' . $GLOBALS['dbi']->escapeString($db) . '\''; - Relation::queryAsControlUser($remove_query); - } -} - -/** - * Cleanup user related relation stuff - * - * @param string $username username - * - * @return void - */ -function PMA_relationsCleanupUser($username) -{ - $cfgRelation = Relation::getRelationsParam(); - - if ($cfgRelation['bookmarkwork']) { - $remove_query = "DELETE FROM " - . PhpMyAdmin\Util::backquote($cfgRelation['db']) - . "." . PhpMyAdmin\Util::backquote($cfgRelation['bookmark']) - . " WHERE `user` = '" . $GLOBALS['dbi']->escapeString($username) - . "'"; - Relation::queryAsControlUser($remove_query); - } - - if ($cfgRelation['historywork']) { - $remove_query = "DELETE FROM " - . PhpMyAdmin\Util::backquote($cfgRelation['db']) - . "." . PhpMyAdmin\Util::backquote($cfgRelation['history']) - . " WHERE `username` = '" . $GLOBALS['dbi']->escapeString($username) - . "'"; - Relation::queryAsControlUser($remove_query); - } - - if ($cfgRelation['recentwork']) { - $remove_query = "DELETE FROM " - . PhpMyAdmin\Util::backquote($cfgRelation['db']) - . "." . PhpMyAdmin\Util::backquote($cfgRelation['recent']) - . " WHERE `username` = '" . $GLOBALS['dbi']->escapeString($username) - . "'"; - Relation::queryAsControlUser($remove_query); - } - - if ($cfgRelation['favoritework']) { - $remove_query = "DELETE FROM " - . PhpMyAdmin\Util::backquote($cfgRelation['db']) - . "." . PhpMyAdmin\Util::backquote($cfgRelation['favorite']) - . " WHERE `username` = '" . $GLOBALS['dbi']->escapeString($username) - . "'"; - Relation::queryAsControlUser($remove_query); - } - - if ($cfgRelation['uiprefswork']) { - $remove_query = "DELETE FROM " - . PhpMyAdmin\Util::backquote($cfgRelation['db']) - . "." . PhpMyAdmin\Util::backquote($cfgRelation['table_uiprefs']) - . " WHERE `username` = '" . $GLOBALS['dbi']->escapeString($username) - . "'"; - Relation::queryAsControlUser($remove_query); - } - - if ($cfgRelation['userconfigwork']) { - $remove_query = "DELETE FROM " - . PhpMyAdmin\Util::backquote($cfgRelation['db']) - . "." . PhpMyAdmin\Util::backquote($cfgRelation['userconfig']) - . " WHERE `username` = '" . $GLOBALS['dbi']->escapeString($username) - . "'"; - Relation::queryAsControlUser($remove_query); - } - - if ($cfgRelation['menuswork']) { - $remove_query = "DELETE FROM " - . PhpMyAdmin\Util::backquote($cfgRelation['db']) - . "." . PhpMyAdmin\Util::backquote($cfgRelation['users']) - . " WHERE `username` = '" . $GLOBALS['dbi']->escapeString($username) - . "'"; - Relation::queryAsControlUser($remove_query); - } - - if ($cfgRelation['navwork']) { - $remove_query = "DELETE FROM " - . PhpMyAdmin\Util::backquote($cfgRelation['db']) - . "." . PhpMyAdmin\Util::backquote($cfgRelation['navigationhiding']) - . " WHERE `username` = '" . $GLOBALS['dbi']->escapeString($username) - . "'"; - Relation::queryAsControlUser($remove_query); - } - - if ($cfgRelation['savedsearcheswork']) { - $remove_query = "DELETE FROM " - . PhpMyAdmin\Util::backquote($cfgRelation['db']) - . "." . PhpMyAdmin\Util::backquote($cfgRelation['savedsearches']) - . " WHERE `username` = '" . $GLOBALS['dbi']->escapeString($username) - . "'"; - Relation::queryAsControlUser($remove_query); - } - - if ($cfgRelation['designersettingswork']) { - $remove_query = "DELETE FROM " - . PhpMyAdmin\Util::backquote($cfgRelation['db']) - . "." . PhpMyAdmin\Util::backquote($cfgRelation['designer_settings']) - . " WHERE `username` = '" . $GLOBALS['dbi']->escapeString($username) - . "'"; - Relation::queryAsControlUser($remove_query); - } -} diff --git a/server_privileges.php b/server_privileges.php index 7643365c08..77228113dc 100644 --- a/server_privileges.php +++ b/server_privileges.php @@ -278,7 +278,6 @@ if (isset($_REQUEST['change_pw'])) { if (isset($_REQUEST['delete']) || (isset($_REQUEST['change_copy']) && $_REQUEST['mode'] < 4) ) { - include_once 'libraries/relation_cleanup.lib.php'; $queries = Privileges::getDataForDeleteUsers($queries); if (empty($_REQUEST['change_copy'])) { list($sql_query, $message) = Privileges::deleteUser($queries); diff --git a/tbl_operations.php b/tbl_operations.php index 36f6868239..54a6630bc8 100644 --- a/tbl_operations.php +++ b/tbl_operations.php @@ -426,7 +426,7 @@ if (! (isset($db_is_system_schema) && $db_is_system_schema)) { htmlspecialchars($table) ), // table name is needed to avoid running - // PMA_relationsCleanupDatabase() on the whole db later + // PhpMyAdmin\RelationCleanup::database() on the whole db later 'table' => $GLOBALS['table'], ) ); diff --git a/test/classes/MultSubmitsTest.php b/test/classes/MultSubmitsTest.php index 3266ef3b39..11df782139 100644 --- a/test/classes/MultSubmitsTest.php +++ b/test/classes/MultSubmitsTest.php @@ -11,8 +11,6 @@ use PhpMyAdmin\MultSubmits; use PhpMyAdmin\Theme; use PhpMyAdmin\Url; -require_once 'libraries/relation_cleanup.lib.php'; - /** * PhpMyAdmin\Tests\MultSubmitsTest class * diff --git a/test/libraries/PMA_relation_cleanup_test.php b/test/classes/RelationCleanupTest.php similarity index 95% rename from test/libraries/PMA_relation_cleanup_test.php rename to test/classes/RelationCleanupTest.php index 2aa2d6cbb3..2129ac9a72 100644 --- a/test/libraries/PMA_relation_cleanup_test.php +++ b/test/classes/RelationCleanupTest.php @@ -1,27 +1,25 @@