diff --git a/html/Elements/SetupSessionCookie b/html/Elements/SetupSessionCookie index 087f825..c7b3c72 100755 --- a/html/Elements/SetupSessionCookie +++ b/html/Elements/SetupSessionCookie @@ -50,7 +50,7 @@ return if $m->is_subrequest; # avoid reentrancy, as suggested by masonbook my %cookies = CGI::Cookie->fetch(); my $cookiename = "RT_SID_" . $RT::rtname . "." . $ENV{'SERVER_PORT'}; -$SessionCookie ||= $cookies{$cookiename} ? $cookies{$cookiename}->value : undef; +$SessionCookie = $cookies{$cookiename} ? $cookies{$cookiename}->value : undef; my %backends = ( mysql => 'Apache::Session::MySQL', @@ -95,6 +95,13 @@ if ($@) { undef $cookies{$cookiename}; }; } +elsif ( !($session{'CurrentUser'} && $session{'CurrentUser'}->id) ) { + eval { + undef $cookies{$cookiename}; + tied(%session)->delete; + tie %session, $session_class, undef, $session_properties; + } +} if ($@) { die loc("RT couldn't store your session.") . "\n"