From fef93d52da7422825b05e852b4da1b92c710dbdf Mon Sep 17 00:00:00 2001 From: Marcel de Rooy Date: Mon, 14 Mar 2022 11:30:57 +0000 Subject: [PATCH] Bug 29957: Replace clear_all_cookies in Auth.pm Content-Type: text/plain; charset=utf-8 Test plan: Add removable_cookie line for KohaOpacLanguage in koha-conf. Restart, flush. Login, logout from opac or staff. Check in browser dev console that value of this cookie is cleared. Note: You may need to enable language selection and add another language to do this effectively. Bonus: Remove the added line in koha-conf. Restart, flush. Login. Change language. Logout. Check if cookie is preserved. Signed-off-by: Marcel de Rooy --- C4/Auth.pm | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/C4/Auth.pm b/C4/Auth.pm index 1a1aebe3e2..e690fc473d 100644 --- a/C4/Auth.pm +++ b/C4/Auth.pm @@ -47,6 +47,7 @@ use Encode; use C4::Auth_with_shibboleth qw( shib_ok get_login_shib login_shib_url logout_shib checkpw_shib ); use Net::CIDR; use C4::Log qw( logaction ); +use Koha::CookieManager; # use utf8; @@ -805,15 +806,6 @@ sub _timeout_syspref { return $timeout; } -sub clear_all_cookies { - my ( $query ) = shift; - my @cookies; - for my $cookie_name ( $query->cookie ) { - push @cookies, $query->cookie( -name => $cookie_name, -value => '', -expires => '', -HttpOnly => 1 ); - } - return \@cookies; -} - sub checkauth { my $query = shift; @@ -844,6 +836,8 @@ sub checkauth { my $dbh = C4::Context->dbh; my $timeout = _timeout_syspref(); + my $cookie_mgr = Koha::CookieManager->new; + _version_check( $type, $query ); # state variables @@ -917,7 +911,7 @@ sub checkauth { my $shibSuccess = C4::Context->userenv->{'shibboleth'}; $session->delete(); $session->flush; - $cookie = clear_all_cookies($query); + $cookie = $cookie_mgr->clear_if_allowed( $query->cookie, @$cookie ); C4::Context->_unset_userenv($sessionID); if ($cas and $caslogout) { -- 2.20.1