patch #3497179 Contest-5: Add user: Allow create DB w/same name + grant u_%

This commit is contained in:
Jo Michael 2012-03-06 09:51:57 -05:00 committed by Marc Delisle
parent 83b5e0d07a
commit 497bcbc71b

View File

@ -1058,14 +1058,15 @@ if (isset($_REQUEST['adduser_submit']) || isset($_REQUEST['change_copy'])) {
}
if ($_error || ! PMA_DBI_try_query($real_sql_query)) {
$_REQUEST['createdb'] = false;
$_REQUEST['createdb-1']
= $_REQUEST['createdb-2']
= $_REQUEST['createdb-3'] = false;
$message = PMA_Message::rawError(PMA_DBI_getError());
} else {
$message = PMA_Message::success(__('You have added a new user.'));
}
switch (PMA_ifSetOr($_REQUEST['createdb'], '0')) {
case '1' :
if (isset($_REQUEST['createdb-1'])) {
// Create database with same name and grant all privileges
$q = 'CREATE DATABASE IF NOT EXISTS '
. PMA_backquote(PMA_sqlAddSlashes($username)) . ';';
@ -1093,8 +1094,9 @@ if (isset($_REQUEST['adduser_submit']) || isset($_REQUEST['change_copy'])) {
if (! PMA_DBI_try_query($q)) {
$message = PMA_Message::rawError(PMA_DBI_getError());
}
break;
case '2' :
}
if (isset($_REQUEST['createdb-2'])) {
// Grant all privileges on wildcard name (username\_%)
$q = 'GRANT ALL PRIVILEGES ON '
. PMA_backquote(PMA_sqlAddSlashes($username) . '\_%') . '.* TO \''
@ -1103,8 +1105,9 @@ if (isset($_REQUEST['adduser_submit']) || isset($_REQUEST['change_copy'])) {
if (! PMA_DBI_try_query($q)) {
$message = PMA_Message::rawError(PMA_DBI_getError());
}
break;
case '3' :
}
if (isset($_REQUEST['createdb-3'])) {
// Grant all privileges on the specified database to the new user
$q = 'GRANT ALL PRIVILEGES ON '
. PMA_backquote(PMA_sqlAddSlashes($dbname)) . '.* TO \''
@ -1113,10 +1116,6 @@ if (isset($_REQUEST['adduser_submit']) || isset($_REQUEST['change_copy'])) {
if (! PMA_DBI_try_query($q)) {
$message = PMA_Message::rawError(PMA_DBI_getError());
}
break;
case '0' :
default :
break;
}
} else {
if (isset($create_user_real)) {
@ -2233,28 +2232,17 @@ if (empty($_REQUEST['adduser']) && (! isset($checkprivs) || ! strlen($checkprivs
echo '<fieldset id="fieldset_add_user_database">' . "\n"
. '<legend>' . __('Database for user') . '</legend>' . "\n";
$default_choice = 0;
$choices = array(
'0' => _pgettext('Create none database for user', 'None'),
'1' => __('Create database with same name and grant all privileges'),
'2' => __('Grant all privileges on wildcard name (username\\_%)'));
PMA_display_html_checkbox('createdb-1', __('Create database with same name and grant all privileges'), false, false);
echo '<br />' . "\n";
PMA_display_html_checkbox('createdb-2', __('Grant all privileges on wildcard name (username\\_%)'), false, false);
echo '<br />' . "\n";
if (! empty($dbname) ) {
$choices['3'] = sprintf(
__('Grant all privileges on database &quot;%s&quot;'),
htmlspecialchars($dbname)
);
$default_choice = 3;
PMA_display_html_checkbox('createdb-3', sprintf(__('Grant all privileges on database &quot;%s&quot;'), htmlspecialchars($dbname)), true, false);
echo '<input type="hidden" name="dbname" value="' . htmlspecialchars($dbname) . '" />' . "\n";
echo '<br />' . "\n";
}
// 4th parameter set to true to add line breaks
// 5th parameter set to false to avoid htmlspecialchars() escaping in the label
// since we have some HTML in some labels
PMA_display_html_radio('createdb', $choices, $default_choice, true, false);
unset($choices);
unset($default_choice);
echo '</fieldset>' . "\n";
PMA_displayPrivTable('*', '*', false);
echo ' <fieldset id="fieldset_add_user_footer" class="tblFooters">' . "\n"