From: Jeff Godin Date: Wed, 30 Oct 2013 17:20:28 +0000 (-0400) Subject: Skip duplicate username check when username unchanged X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=dd576d0b8fccb523122f30f1bb54309ca3959dcb;p=evergreen%2Fpines.git Skip duplicate username check when username unchanged Changing a username, then changing back to the user's current username results in a duplicate username detection -- a false positive due to the API call finding a user with that username -- the current user. This prevents you from saving any other changes you may have made to the user. This can be prevented by skipping the duplicate username check if the user is not new and the username in the field matches the username stored in the in-memory Javascript representation of the user. There's still a potential corner case which could be avoided by using a new/modified API call to either accept an "except this au.id" argument or to return the au.id of the found user, but I don't see a need for that at this point. Signed-off-by: Jeff Godin Signed-off-by: Ben Shum --- diff --git a/Open-ILS/web/js/ui/default/actor/user/register.js b/Open-ILS/web/js/ui/default/actor/user/register.js index daccc51620..629b18c795 100644 --- a/Open-ILS/web/js/ui/default/actor/user/register.js +++ b/Open-ILS/web/js/ui/default/actor/user/register.js @@ -1380,7 +1380,9 @@ function attachWidgetEvents(fmcls, fmfield, widget) { var input = findWidget('au', 'usrname'); var usrname = input.widget.attr('value'); - if(!usrname) { + // Skip username check if the value is not yet present, or if this + // is a patron which already existed and the usrname value is unchanged + if(!usrname || (!patron.isnew() && usrname == patron.usrname())) { dupeUsrname = false; dojo.addClass(dojo.byId('uedit-dupe-username-warning'), 'hidden'); return;