From 8ad22414a36d764a2ea0917127b6c4071fccbbf3 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. 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 ac4cb0ab6e..0195f20edb 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; @@ -804,15 +805,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; @@ -843,6 +835,8 @@ sub checkauth { my $dbh = C4::Context->dbh; my $timeout = _timeout_syspref(); + my $cookie_mgr = Koha::CookieManager->new; + _version_check( $type, $query ); # state variables @@ -915,7 +909,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