Bug 12954: Failed login should retain anonymous session
authorMartin Renvoize <martin.renvoize@ptfs-europe.com>
Tue, 30 Dec 2014 13:54:50 +0000 (13:54 +0000)
committerChris Cormack <chris@bigballofwax.co.nz>
Mon, 2 Feb 2015 18:46:09 +0000 (07:46 +1300)
commitf3b90f78f5010aaa9e705026e3db556a40fccaa1
tree51bd9a63c382a12ffc8bb9a40bd426c2eee408e5
parentc619aa9f7fd3363975d6d2743fb024279aec85be
Bug 12954: Failed login should retain anonymous session

A failed login should not leave the user in a half logged authenticated
state, but rather return them to an anonymouse session as per the
pre-login attempt state.

To replicate error:
1. Try to log in with some nonexisting user id or wrong password in the
   OPAC
2. Go directly to /opac-user.pl (e.g., enter it in the browser address
   bar, or just click on the "Log in" link)
3. Observe a DBI error displayed on the screen
4. You are now in the "deadloop" of sorts (opac/opac-user.pl refuses to
   display the login screen, no matter how many times you try to reload
   it); to break the deadloop, one needs to:
   - remove session cookie from the browser (or cause the session to
     expire in some other way - closing browser window would be probably
     enough for that)
   - remove offending session on the server (from mysql sessions table,
    ..)
   - log in with proper credentials using some other page (like
     opac/opac-main.pl right-side panel), which does not involve
     opac/opac-user.pl being called without "userid" CGI parameter.

To test:
1. Test as above, the DBI error should no longer be present
2. Check that search history works across failed and sucessful login
   attempts

Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
(cherry picked from commit 229a3b329c9fbe1567a9cd0796dce7ddf1aca781)
Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
C4/Auth.pm