From 57cb8449e72a121e54ac217e1e6377ae02e3a4b0 Mon Sep 17 00:00:00 2001 From: Kasun Chathuranga Date: Sat, 13 Apr 2013 19:47:38 +0530 Subject: [PATCH 1/2] On user creation, warn if the user already exists --- js/server_privileges.js | 26 ++++++++++++++++++++++++++ libraries/server_privileges.lib.php | 25 +++++++++++++++++++++++-- server_privileges.php | 4 ++++ 3 files changed, 53 insertions(+), 2 deletions(-) diff --git a/js/server_privileges.js b/js/server_privileges.js index f6c05999f1..03bc41ab94 100644 --- a/js/server_privileges.js +++ b/js/server_privileges.js @@ -166,6 +166,7 @@ function addUser($form) * Unbind all event handlers before tearing down a page */ 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 d0cc5bb421..9afea7e273 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" . '
';