some changes to PMA_deleteUser and PMA_updatePrivileges

This commit is contained in:
Thilina Buddika 2012-07-10 23:40:11 +05:30
parent ef4d31e581
commit c1a8445bcf
2 changed files with 57 additions and 53 deletions

View File

@ -2356,7 +2356,7 @@ function PMA_getDbRightsForUserOverview()
}
/**
* Delete user and get message for delete user in privileges
* Delete user and get message and sql query for delete user in privileges
*
* @param string $queries queries
*
@ -2364,60 +2364,32 @@ function PMA_getDbRightsForUserOverview()
*/
function PMA_deleteUser($queries)
{
$common_functions = PMA_CommonFunctions::getInstance();
if (isset($_REQUEST['change_copy'])) {
$selected_usr = array($_GET['old_username'] . '' . $_GET['old_hostname']);
if (empty($queries)) {
$message = PMA_Message::error(__('No users selected for deleting!'));
} else {
$selected_usr = $_REQUEST['selected_usr'];
$queries = array();
}
foreach ($selected_usr as $each_user) {
list($this_user, $this_host) = explode('', $each_user);
$queries[] = '# '
. sprintf(__('Deleting %s'), '\'' . $this_user . '\'@\'' . $this_host . '\'')
. ' ...';
$queries[] = 'DROP USER \''
. $common_functions->sqlAddSlashes($this_user) . '\'@\''
. $common_functions->sqlAddSlashes($this_host) . '\';';
if (isset($_REQUEST['drop_users_db'])) {
$queries[] = 'DROP DATABASE IF EXISTS ' . $common_functions->backquote($this_user) . ';';
$GLOBALS['reload'] = true;
if ($GLOBALS['is_ajax_request'] != true) {
echo $common_functions->getReloadNavigationScript();
}
if ($_REQUEST['mode'] == 3) {
$queries[] = '# ' . __('Reloading the privileges') . ' ...';
$queries[] = 'FLUSH PRIVILEGES;';
}
}
if (empty($_REQUEST['change_copy'])) {
if (empty($queries)) {
$message = PMA_Message::error(__('No users selected for deleting!'));
} else {
if ($_REQUEST['mode'] == 3) {
$queries[] = '# ' . __('Reloading the privileges') . ' ...';
$queries[] = 'FLUSH PRIVILEGES;';
}
$drop_user_error = '';
foreach ($queries as $sql_query) {
if ($sql_query{0} != '#') {
if (! PMA_DBI_try_query($sql_query, $GLOBALS['userlink'])) {
$drop_user_error .= PMA_DBI_getError() . "\n";
}
$drop_user_error = '';
foreach ($queries as $sql_query) {
if ($sql_query{0} != '#') {
if (! PMA_DBI_try_query($sql_query, $GLOBALS['userlink'])) {
$drop_user_error .= PMA_DBI_getError() . "\n";
}
}
// tracking sets this, causing the deleted db to be shown in navi
unset($GLOBALS['db']);
}
// tracking sets this, causing the deleted db to be shown in navi
unset($GLOBALS['db']);
$sql_query = join("\n", $queries);
if (! empty($drop_user_error)) {
$message = PMA_Message::rawError($drop_user_error);
} else {
$message = PMA_Message::success(__('The selected users have been deleted successfully.'));
}
$sql_query = join("\n", $queries);
if (! empty($drop_user_error)) {
$message = PMA_Message::rawError($drop_user_error);
} else {
$message = PMA_Message::success(__('The selected users have been deleted successfully.'));
}
}
return $message;
return array($sql_query, $message);
}
/**
@ -2430,10 +2402,20 @@ function PMA_deleteUser($queries)
*
* @return PMA_message success message or error message for update
*/
function PMA_updatePrivileges($dbname, $tablename, $username, $hostname)
function PMA_updatePrivileges($username, $hostname)
{
$common_functions = PMA_CommonFunctions::getInstance();
if (PMA_isValid($_REQUEST['pred_tablename'])) {
$tablename = $_REQUEST['pred_tablename'];
} elseif (PMA_isValid($_REQUEST['tablename'])) {
$tablename = $_REQUEST['tablename'];
}
if (PMA_isValid($_REQUEST['pred_dbname'])) {
$dbname = $_REQUEST['pred_dbname'];
} elseif (PMA_isValid($_REQUEST['dbname'])) {
$dbname = $_REQUEST['dbname'];
}
$db_and_table = PMA_wildcardEscapeForGrant(
$dbname, (isset($tablename) ? $tablename : '')
);
@ -2487,7 +2469,7 @@ function PMA_updatePrivileges($dbname, $tablename, $username, $hostname)
'\'' . htmlspecialchars($username) . '\'@\'' . htmlspecialchars($hostname) . '\''
);
return $message;
return array($sql_query, $message);
}
/**

View File

@ -460,7 +460,7 @@ if (isset($_REQUEST['change_copy'])) {
* Updates privileges
*/
if (! empty($update_privs)) {
$message = PMA_updatePrivileges($dbname, $tablename, $username, $hostname);
list($sql_query, $message) = PMA_updatePrivileges($username, $hostname);
}
/**
@ -488,8 +488,30 @@ if (isset($_REQUEST['change_pw'])) {
if (isset($_REQUEST['delete'])
|| (isset($_REQUEST['change_copy']) && $_REQUEST['mode'] < 4)
) {
$message = PMA_deleteUser($queries);
}
if (isset($_REQUEST['change_copy'])) {
$selected_usr = array($_REQUEST['old_username'] . '&amp;#27;' . $_REQUEST['old_hostname']);
} else {
$selected_usr = $_REQUEST['selected_usr'];
$queries = array();
}
foreach ($selected_usr as $each_user) {
list($this_user, $this_host) = explode('&amp;#27;', $each_user);
$queries[] = '# ' . sprintf(__('Deleting %s'), '\'' . $this_user . '\'@\'' . $this_host . '\'') . ' ...';
$queries[] = 'DROP USER \'' . $common_functions->sqlAddSlashes($this_user) . '\'@\'' . $common_functions->sqlAddSlashes($this_host) . '\';';
if (isset($_REQUEST['drop_users_db'])) {
$queries[] = 'DROP DATABASE IF EXISTS ' . $common_functions->backquote($this_user) . ';';
$GLOBALS['reload'] = true;
if ($GLOBALS['is_ajax_request'] != true) {
echo $common_functions->getReloadNavigationScript();
}
}
}
if (empty($_REQUEST['change_copy'])) {
list($sql_query, $message) = PMA_deleteUser($queries);
}
}
/**
* Changes / copies a user, part V