@@ -, +, @@ $userid = $retuserid if ( $retuserid ne ''); $userid = $retuserid if ( $retuserid ); my $q_userid = $query->param('userid') // ''; my $s_userid = ''; my $s_userid = $session->param('id') // ''; --- C4/Auth.pm | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) --- a/C4/Auth.pm +++ a/C4/Auth.pm @@ -650,7 +650,7 @@ sub checkauth { # This parameter is the name of the CAS server we want to authenticate against, # when using authentication against multiple CAS servers, as configured in Auth_cas_servers.yaml my $casparam = $query->param('cas'); - my $q_userid = $query->param('userid'); + my $q_userid = $query->param('userid') // ''; if ( $userid = $ENV{'REMOTE_USER'} ) { # Using Basic Authentication, no cookies required @@ -670,9 +670,9 @@ sub checkauth { my $session = get_session($sessionID); C4::Context->_new_userenv($sessionID); my ($ip, $lasttime, $sessiontype); - my $s_userid; + my $s_userid = ''; if ($session){ - $s_userid = $session->param('id'); + $s_userid = $session->param('id') // ''; C4::Context::set_userenv( $session->param('number'), $s_userid, $session->param('cardnumber'), $session->param('firstname'), @@ -690,7 +690,7 @@ sub checkauth { $userid = $s_userid; $sessiontype = $session->param('sessiontype') || ''; } - if ( ( $query->param('koha_login_context') && ($q_userid && $s_userid && $q_userid ne $s_userid) ) + if ( ( $query->param('koha_login_context') && ($q_userid ne $s_userid) ) || ( $cas && $query->param('ticket') ) ) { #if a user enters an id ne to the id in the current session, we need to log them in... #first we need to clear the anonymous session... @@ -714,7 +714,7 @@ sub checkauth { logout_cas($query); } } - elsif ( $lasttime && ($lasttime < time() - $timeout) ) { + elsif ( !$lasttime || ($lasttime < time() - $timeout) ) { # timed logout $info{'timed_out'} = 1; $session->delete() if $session; @@ -838,7 +838,7 @@ sub checkauth { my $retuserid; ( $return, $cardnumber, $retuserid ) = checkpw( $dbh, $userid, $password, $query ); - $userid = $retuserid if ( $retuserid ne '' ); + $userid = $retuserid if ( $retuserid ); } if ($return) { #_session_log(sprintf "%20s from %16s logged in at %30s.\n", $userid,$ENV{'REMOTE_ADDR'},(strftime '%c', localtime)); --