From 613c8052906669a4fc6f401ee0e8876eab6af217 Mon Sep 17 00:00:00 2001 From: Alex Buckley Date: Thu, 20 Apr 2017 11:29:28 +1200 Subject: [PATCH] Bug 18442: Implemented $userid ||= $q_userid if $return == 2; in place of $userid ||= $q_userid; Test plan: 1. Drop and recreate your db 2. Clear memcached 3. Go through the installer (to speed up this test plan install all sample data so you dont have to create libraries, patron categories etc. later) 4. On the installer page login as the database user and notice that it does not work on the first attempt ( you get 'Error: You do not have permission to access this page') 5. Try logging in as database user for a second time and notice you are logged in successfully this time 4. In staff interface create a patron account with superlibrarian permissions 5. Logout of the staff interface 6. Login as database user 7. Notice you cant log in. You get the 'Error:: You do not have permission to access this page' error 8. Try a second attempt and notice you get the same error 9. Open the URL in a new tab and notice the staff interface appears showing that you are logged in 10. log out and log back in as the superlibrarian user you created and notice it works on first login attempt 11. Apply patch 12. Log out and try logging back in as database user and notice that you can login successfully on first attempt 13. Repeat steps 1,2,3 and login as database user and notice the login works on first attempt --- C4/Auth.pm | 1 + 1 file changed, 1 insertion(+) diff --git a/C4/Auth.pm b/C4/Auth.pm index 40b273a..9a43933 100644 --- a/C4/Auth.pm +++ b/C4/Auth.pm @@ -1020,6 +1020,7 @@ sub checkauth { # $return: 1 = valid user, 2 = superlibrarian if ($return) { + $userid ||= $q_userid if $return == 2; #_session_log(sprintf "%20s from %16s logged in at %30s.\n", $userid,$ENV{'REMOTE_ADDR'},(strftime '%c', localtime)); if ( $flags = haspermission( $userid, $flagsrequired ) ) { -- 2.1.4