diff --git a/js/server_privileges.js b/js/server_privileges.js index 8863b4cceb..a564cf9515 100644 --- a/js/server_privileges.js +++ b/js/server_privileges.js @@ -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' * diff --git a/libraries/server_privileges.lib.php b/libraries/server_privileges.lib.php index 05a8653d71..c30dd34870 100644 --- a/libraries/server_privileges.lib.php +++ b/libraries/server_privileges.lib.php @@ -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" - . '' . "\n"; + . ' onchange="pred_username.value = \'userdefined\';" />' . "\n"; + + $html_output .= ''; + $html_output .= ''; $html_output .= '
' . "\n" . '