Bug 10019: Fix for userid containing UTF8 chars
authorMarcel de Rooy <m.de.rooy@rijksmuseum.nl>
Wed, 10 Apr 2013 08:13:52 +0000 (10:13 +0200)
committerJared Camins-Esakov <jcamins@cpbibliography.com>
Sat, 20 Apr 2013 03:13:09 +0000 (23:13 -0400)
Decodes userid on two places in checkauth of C4/Auth.pm

Test plan:
Include some non-Latin characters in your userid (loginname). Arab, Chinese?
Login into opac and check user page.
Go to staff (no new login), check your login name at various places.
Logout, login via staff.
Do the same.
Go to opac again (no new login), check user page.
Optionally: Remove all your sessions from table. Do a login. Check sessions.

Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
Comment: Works as described. No errors.
This patch fixes this problem, but I wonder if
there is a general solution that handle all as utf8.
Tested in opac and staff.
Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
C4/Auth.pm

index 811151b..837ff12 100644 (file)
@@ -675,6 +675,7 @@ sub checkauth {
             $ip       = $session->param('ip');
             $lasttime = $session->param('lasttime');
             $userid   = $session->param('id');
+            utf8::decode($userid);
             $sessiontype = $session->param('sessiontype') || '';
         }
         if ( ( ($query->param('koha_login_context')) && ($query->param('userid') ne $session->param('id')) )
@@ -750,6 +751,7 @@ sub checkauth {
             -HttpOnly => 1
         );
     $userid = $query->param('userid');
+    utf8::decode($userid);
         if (   ( $cas && $query->param('ticket') )
             || $userid
             || ( my $pki_field = C4::Context->preference('AllowPKIAuth') ) ne