Make patron alias unique test case insensitive
authorJeff Godin <jgodin@tadl.org>
Thu, 23 Aug 2012 18:39:26 +0000 (14:39 -0400)
committerJeff Godin <jgodin@tadl.org>
Sun, 22 May 2016 03:51:00 +0000 (23:51 -0400)
When testing a patron alias to determine if it is unique, ensure
that the comparison is done without regard for case.

Case is preserved, but when searching for an existing matching
alias, both values are lowercased using evergreen.lowercase().

Signed-off-by: Jeff Godin <jgodin@tadl.org>
Open-ILS/src/perlmods/lib/OpenILS/Application/Actor.pm

index 327f3e8..71ebd57 100644 (file)
@@ -1506,7 +1506,17 @@ sub update_passwd {
 
         } elsif( $api =~ /alias/o ) {
 
-            my $exist = $e->search_actor_user({alias=>$new_val},{idlist=>1});
+            my $exist = $e->search_actor_user(
+                { alias => {
+                    "=" => {
+                        transform => "evergreen.lowercase",
+                        value     => lc($new_val)
+                        }
+                    }
+                },
+                { idlist => 1 }
+            );
+
             if (@$exist) {
                 $e->rollback;
                 return new OpenILS::Event('USERNAME_EXISTS');