View | Details | Raw Unified | Return to bug 41895
Collapse All | Expand All

(-)a/C4/Context.pm (-5 / +7 lines)
Lines 21-26 use Modern::Perl; Link Here
21
21
22
use vars qw($AUTOLOAD $context);
22
use vars qw($AUTOLOAD $context);
23
23
24
our $REQUEST_ENV;
25
24
BEGIN {
26
BEGIN {
25
    if ( $ENV{'HTTP_USER_AGENT'} ) {    # Only hit when plack is not enabled
27
    if ( $ENV{'HTTP_USER_AGENT'} ) {    # Only hit when plack is not enabled
26
28
Lines 50-55 use Koha::Config::SysPrefs; Link Here
50
use Koha::Context::Preferences;
52
use Koha::Context::Preferences;
51
use Koha::Config;
53
use Koha::Config;
52
use Koha;
54
use Koha;
55
use Koha::Context::UserEnv;
53
56
54
=head1 NAME
57
=head1 NAME
55
58
Lines 646-652 Retrieves a hash for user environment variables. Link Here
646
=cut
649
=cut
647
650
648
sub userenv {
651
sub userenv {
649
    return $context->{userenv};
652
    return Koha::Context::UserEnv->get_all();
650
}
653
}
651
654
652
=head2 set_userenv_from_session
655
=head2 set_userenv_from_session
Lines 699-705 sub set_userenv { Link Here
699
        $register_id,  $register_name, $session_id,
702
        $register_id,  $register_name, $session_id,
700
    ) = @_;
703
    ) = @_;
701
704
702
    my $cell = {
705
    my $userenv = {
703
        "number"     => $usernum,
706
        "number"     => $usernum,
704
        "id"         => $userid,
707
        "id"         => $userid,
705
        "cardnumber" => $usercnum,
708
        "cardnumber" => $usercnum,
Lines 718-725 sub set_userenv { Link Here
718
        "register_name" => $register_name,
721
        "register_name" => $register_name,
719
        "session_id"    => $session_id,
722
        "session_id"    => $session_id,
720
    };
723
    };
721
    $context->{userenv} = $cell;
724
    return Koha::Context::UserEnv->attach($userenv);
722
    return $cell;
723
}
725
}
724
726
725
=head2 unset_userenv
727
=head2 unset_userenv
Lines 731-737 Destroys user environment variables. Link Here
731
=cut
733
=cut
732
734
733
sub unset_userenv {
735
sub unset_userenv {
734
    $context->{userenv} = undef;
736
    return Koha::Context::UserEnv->clear();
735
}
737
}
736
738
737
=head2 get_versions
739
=head2 get_versions
(-)a/Koha/Context/UserEnv.pm (+47 lines)
Line 0 Link Here
1
package Koha::Context::UserEnv;
2
3
use Modern::Perl;
4
5
our $REQUEST_ENV;
6
7
sub attach {
8
    my ( $class, $userenv ) = @_;
9
10
    die "userenv must be hashref"
11
        unless ref $userenv eq 'HASH';
12
13
    die "No request env" unless $REQUEST_ENV;
14
15
    $REQUEST_ENV->{'koha.userenv'} = $userenv;
16
    return $userenv;
17
}
18
19
sub get_all {
20
    return unless $REQUEST_ENV;
21
    return $REQUEST_ENV->{'koha.userenv'};
22
}
23
24
sub get {
25
    my ( $class, $key ) = @_;
26
    return unless $REQUEST_ENV && $REQUEST_ENV->{'koha.userenv'};
27
    return $REQUEST_ENV->{'koha.userenv'}->{$key};
28
}
29
30
sub set {
31
    my ( $class, $key, $value ) = @_;
32
    die "No userenv attached" unless $REQUEST_ENV && $REQUEST_ENV->{'koha.userenv'};
33
34
    $REQUEST_ENV->{'koha.userenv'}->{$key} = $value;
35
    return $value;
36
}
37
38
sub clear {
39
    return unless $REQUEST_ENV;
40
    delete $REQUEST_ENV->{'koha.userenv'};
41
}
42
43
sub exists {
44
    return exists $REQUEST_ENV->{'koha.userenv'};
45
}
46
47
1;
(-)a/Koha/Middleware/UserEnv.pm (-3 / +4 lines)
Lines 3-9 use Modern::Perl; Link Here
3
3
4
use parent qw(Plack::Middleware);
4
use parent qw(Plack::Middleware);
5
5
6
use C4::Context;
6
use Koha::Context::UserEnv;
7
7
8
=head1 NAME
8
=head1 NAME
9
9
Lines 22-28 sub call { Link Here
22
22
23
    my $req = Plack::Request->new($env);
23
    my $req = Plack::Request->new($env);
24
24
25
    C4::Context->unset_userenv;
25
    local $Koha::Context::UserEnv::REQUEST_ENV = $env;
26
27
    Koha::Context::UserEnv->attach( {} );
26
28
27
    return $self->app->($env);
29
    return $self->app->($env);
28
}
30
}
29
- 

Return to bug 41895