Merge pull request #289 from kasunchathuranga/Feature499
Feature Request 499: On user creation, warn if the user already exists
This commit is contained in:
commit
57f7a2d6ac
@ -165,7 +165,8 @@ function addUser($form)
|
||||
/**
|
||||
* Unbind all event handlers before tearing down a page
|
||||
*/
|
||||
AJAX.registerTeardown('server_privileges.js', function () {
|
||||
AJAX.registerTeardown('server_privileges.js', function() {
|
||||
$("#fieldset_add_user_login input[name='username']").die("focusout");
|
||||
$("#fieldset_add_user a.ajax").die("click");
|
||||
$('form[name=usersForm]').unbind('submit');
|
||||
$("#reload_privileges_anchor.ajax").die("click");
|
||||
@ -179,6 +180,31 @@ AJAX.registerTeardown('server_privileges.js', function () {
|
||||
});
|
||||
|
||||
AJAX.registerOnload('server_privileges.js', function () {
|
||||
/**
|
||||
* Display a warning if there is already a user by the name entered as the username.
|
||||
*/
|
||||
$("#fieldset_add_user_login input[name='username']").live("focusout", function() {
|
||||
var username = $(this).val();
|
||||
var $warning = $("#user_exists_warning");
|
||||
if ($("#select_pred_username").val() == 'userdefined' && username != '') {
|
||||
var href = $("form[name='usersForm']").attr('action');
|
||||
var params = {
|
||||
'ajax_request' : true,
|
||||
'token' : PMA_commonParams.get('token'),
|
||||
'validate_username' : true,
|
||||
'username' : username
|
||||
};
|
||||
$.get(href, params, function(data) {
|
||||
if (data['user_exists']) {
|
||||
$warning.show();
|
||||
} else {
|
||||
$warning.hide();
|
||||
}
|
||||
});
|
||||
} else {
|
||||
$warning.hide();
|
||||
}
|
||||
});
|
||||
/**
|
||||
* AJAX event handler for 'Add a New User'
|
||||
*
|
||||
|
||||
@ -1035,6 +1035,7 @@ function PMA_getHtmlForDisplayLoginInformationFields($mode = 'new')
|
||||
$html_output .= ' onchange="'
|
||||
. 'if (this.value == \'any\') {'
|
||||
. ' username.value = \'\'; '
|
||||
. ' user_exists_warning.style.display = \'none\'; '
|
||||
. '} else if (this.value == \'userdefined\') {'
|
||||
. ' username.focus(); username.select(); '
|
||||
. '}">' . "\n";
|
||||
@ -1068,8 +1069,15 @@ function PMA_getHtmlForDisplayLoginInformationFields($mode = 'new')
|
||||
: $GLOBALS['username']
|
||||
) . '"'
|
||||
)
|
||||
. ' onchange="pred_username.value = \'userdefined\';" />' . "\n"
|
||||
. '</div>' . "\n";
|
||||
. ' onchange="pred_username.value = \'userdefined\';" />' . "\n";
|
||||
|
||||
$html_output .= '<div id="user_exists_warning"'
|
||||
. ' name="user_exists_warning" style="display:none;">'
|
||||
. PMA_Message::notice(
|
||||
__('An account already exists with the same username but possibly a different hostname. Are you sure you wish to proceed?')
|
||||
)->getDisplay()
|
||||
. '</div>';
|
||||
$html_output .= '</div>';
|
||||
|
||||
$html_output .= '<div class="item">' . "\n"
|
||||
. '<label for="select_pred_hostname">' . "\n"
|
||||
@ -1905,6 +1913,19 @@ function PMA_getExtraDataForAjaxBehavior($password, $link_export, $sql_query,
|
||||
|
||||
$extra_data['new_privileges'] = $new_privileges;
|
||||
}
|
||||
|
||||
if (isset($_REQUEST['validate_username'])) {
|
||||
$sql_query = "SELECT * FROM `mysql`.`user` WHERE `User` = '"
|
||||
. $_REQUEST['username'] . "';";
|
||||
$res = PMA_DBI_query($sql_query);
|
||||
$row = PMA_DBI_fetch_row($res);
|
||||
if (empty($row)) {
|
||||
$extra_data['user_exists'] = false;
|
||||
} else {
|
||||
$extra_data['user_exists'] = true;
|
||||
}
|
||||
}
|
||||
|
||||
return $extra_data;
|
||||
}
|
||||
|
||||
|
||||
@ -356,6 +356,10 @@ if (isset($_REQUEST['flush_privileges'])) {
|
||||
$message = PMA_Message::success(__('The privileges were reloaded successfully.'));
|
||||
}
|
||||
|
||||
if (isset($_REQUEST['validate_username'])) {
|
||||
$message = PMA_Message::success();
|
||||
}
|
||||
|
||||
/**
|
||||
* some standard links
|
||||
*/
|
||||
|
||||
Loading…
Reference in New Issue
Block a user