diff --git a/C4/Context.pm b/C4/Context.pm index 654414de3c..1798061ec9 100644 --- a/C4/Context.pm +++ b/C4/Context.pm @@ -801,8 +801,7 @@ Destroys the hash for activeuser user environment variables. sub _unset_userenv { - my ($sessionID)= @_; - undef $context->{activeuser} if $sessionID && $context->{activeuser} && $context->{activeuser} eq $sessionID; + delete $context->{activeuser}; } diff --git a/Koha/Middleware/UserEnv.pm b/Koha/Middleware/UserEnv.pm new file mode 100644 index 0000000000..03d515fdcf --- /dev/null +++ b/Koha/Middleware/UserEnv.pm @@ -0,0 +1,18 @@ +package Koha::Middleware::UserEnv; +use Modern::Perl; + +use parent qw(Plack::Middleware); + +use C4::Context; + +sub call { + my ( $self, $env ) =@_; + + my $req = Plack::Request->new($env); + + C4::Context->_unset_userenv; + + return $self->app->($env); +} + +1; diff --git a/debian/templates/plack.psgi b/debian/templates/plack.psgi index 89cd6ef48f..d4a0cfb725 100644 --- a/debian/templates/plack.psgi +++ b/debian/templates/plack.psgi @@ -73,6 +73,7 @@ builder { enable "Plack::Middleware::Static"; # + is required so Plack doesn't try to prefix Plack::Middleware:: + enable "+Koha::Middleware::UserEnv"; enable "+Koha::Middleware::SetEnv"; enable "+Koha::Middleware::RealIP";