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>
Tue, 7 Apr 2015 15:29:22 +0000 (11:29 -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 b650100..39a62ea 100644 (file)
@@ -1475,7 +1475,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');