Bug 24786: (follow-up) Cache the register_name in the session
This leads to one DB hit less per page load in the staff client when cash registers are enabled. Signed-off-by: Andrew Fuerste-Henry <andrew@bywatersolutions.com> Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
This commit is contained in:
parent
114e851f8f
commit
1bc723b33c
16
C4/Auth.pm
16
C4/Auth.pm
|
|
@ -38,6 +38,7 @@ use Koha::Checkouts;
|
|||
use Koha::DateUtils qw(dt_from_string);
|
||||
use Koha::Library::Groups;
|
||||
use Koha::Libraries;
|
||||
use Koha::Cash::Registers;
|
||||
use Koha::Desks;
|
||||
use Koha::Patrons;
|
||||
use Koha::Patron::Consents;
|
||||
|
|
@ -868,7 +869,7 @@ sub checkauth {
|
|||
$session->param('branchname'), $session->param('flags'),
|
||||
$session->param('emailaddress'), $session->param('shibboleth'),
|
||||
$session->param('desk_id'), $session->param('desk_name'),
|
||||
$session->param('register_id')
|
||||
$session->param('register_id'), $session->param('register_name')
|
||||
);
|
||||
C4::Context::set_shelves_userenv( 'bar', $session->param('barshelves') );
|
||||
C4::Context::set_shelves_userenv( 'pub', $session->param('pubshelves') );
|
||||
|
|
@ -1091,7 +1092,7 @@ sub checkauth {
|
|||
}
|
||||
my ( $borrowernumber, $firstname, $surname, $userflags,
|
||||
$branchcode, $branchname, $emailaddress, $desk_id,
|
||||
$desk_name, $register_id );
|
||||
$desk_name, $register_id, $register_name );
|
||||
|
||||
if ( $return == 1 ) {
|
||||
my $select = "
|
||||
|
|
@ -1142,6 +1143,8 @@ sub checkauth {
|
|||
}
|
||||
if ( $query->param('register_id') ) {
|
||||
$register_id = $query->param('register_id');
|
||||
my $register = Koha::Cash::Registers->find($register_id);
|
||||
$register_name = $register ? $register->name : '';
|
||||
}
|
||||
my $branches = { map { $_->branchcode => $_->unblessed } Koha::Libraries->search };
|
||||
if ( $type ne 'opac' and C4::Context->boolean_preference('AutoLocation') ) {
|
||||
|
|
@ -1188,6 +1191,7 @@ sub checkauth {
|
|||
$session->param( 'interface', $type);
|
||||
$session->param( 'shibboleth', $shibSuccess );
|
||||
$session->param( 'register_id', $register_id );
|
||||
$session->param( 'register_name', $register_name );
|
||||
$debug and printf STDERR "AUTH_4: (%s)\t%s %s - %s\n", map { $session->param($_) } qw(cardnumber firstname surname branch);
|
||||
}
|
||||
$session->param('cas_ticket', $cas_ticket) if $cas_ticket;
|
||||
|
|
@ -1198,7 +1202,7 @@ sub checkauth {
|
|||
$session->param('branchname'), $session->param('flags'),
|
||||
$session->param('emailaddress'), $session->param('shibboleth'),
|
||||
$session->param('desk_id'), $session->param('desk_name'),
|
||||
$session->param('register_id')
|
||||
$session->param('register_id'), $session->param('register_name')
|
||||
);
|
||||
|
||||
}
|
||||
|
|
@ -1478,7 +1482,7 @@ sub check_api_auth {
|
|||
$session->param('branchname'), $session->param('flags'),
|
||||
$session->param('emailaddress'), $session->param('shibboleth'),
|
||||
$session->param('desk_id'), $session->param('desk_name'),
|
||||
$session->param('register_id')
|
||||
$session->param('register_id'), $session->param('register_name')
|
||||
);
|
||||
|
||||
my $ip = $session->param('ip');
|
||||
|
|
@ -1642,7 +1646,7 @@ sub check_api_auth {
|
|||
$session->param('branchname'), $session->param('flags'),
|
||||
$session->param('emailaddress'), $session->param('shibboleth'),
|
||||
$session->param('desk_id'), $session->param('desk_name'),
|
||||
$session->param('register_id')
|
||||
$session->param('register_id'), $session->param('register_name')
|
||||
);
|
||||
return ( "ok", $cookie, $sessionID );
|
||||
} else {
|
||||
|
|
@ -1732,7 +1736,7 @@ sub check_cookie_auth {
|
|||
$session->param('branchname'), $session->param('flags'),
|
||||
$session->param('emailaddress'), $session->param('shibboleth'),
|
||||
$session->param('desk_id'), $session->param('desk_name'),
|
||||
$session->param('register_id')
|
||||
$session->param('register_id'), $session->param('register_name')
|
||||
);
|
||||
|
||||
my $ip = $session->param('ip');
|
||||
|
|
|
|||
|
|
@ -806,7 +806,7 @@ sub userenv {
|
|||
$userbranch, $branchname, $userflags,
|
||||
$emailaddress, $shibboleth
|
||||
$desk_id, $desk_name,
|
||||
$register_id);
|
||||
$register_id, $register_name);
|
||||
|
||||
Establish a hash of user environment variables.
|
||||
|
||||
|
|
@ -817,7 +817,7 @@ set_userenv is called in Auth.pm
|
|||
#'
|
||||
sub set_userenv {
|
||||
shift @_;
|
||||
my ($usernum, $userid, $usercnum, $userfirstname, $usersurname, $userbranch, $branchname, $userflags, $emailaddress, $shibboleth, $desk_id, $desk_name, $register_id)=
|
||||
my ($usernum, $userid, $usercnum, $userfirstname, $usersurname, $userbranch, $branchname, $userflags, $emailaddress, $shibboleth, $desk_id, $desk_name, $register_id, $register_name)=
|
||||
map { Encode::is_utf8( $_ ) ? $_ : Encode::decode('UTF-8', $_) } # CGI::Session doesn't handle utf-8, so we decode it here
|
||||
@_;
|
||||
my $var=$context->{"activeuser"} || '';
|
||||
|
|
@ -829,14 +829,15 @@ sub set_userenv {
|
|||
"surname" => $usersurname,
|
||||
|
||||
#possibly a law problem
|
||||
"branch" => $userbranch,
|
||||
"branchname" => $branchname,
|
||||
"flags" => $userflags,
|
||||
"emailaddress" => $emailaddress,
|
||||
"shibboleth" => $shibboleth,
|
||||
"desk_id" => $desk_id,
|
||||
"desk_name" => $desk_name,
|
||||
"register_id" => $register_id,
|
||||
"branch" => $userbranch,
|
||||
"branchname" => $branchname,
|
||||
"flags" => $userflags,
|
||||
"emailaddress" => $emailaddress,
|
||||
"shibboleth" => $shibboleth,
|
||||
"desk_id" => $desk_id,
|
||||
"desk_name" => $desk_name,
|
||||
"register_id" => $register_id,
|
||||
"register_name" => $register_name
|
||||
};
|
||||
$context->{userenv}->{$var} = $cell;
|
||||
return $cell;
|
||||
|
|
|
|||
|
|
@ -37,8 +37,9 @@ sub session_register_id {
|
|||
sub session_register_name {
|
||||
my ($self) = @_;
|
||||
|
||||
my $register = Koha::Cash::Registers->find($self->session_register_id);
|
||||
return $register ? $register->name : '';
|
||||
return C4::Context->userenv
|
||||
? C4::Context->userenv->{'register_name'}
|
||||
: '';
|
||||
}
|
||||
|
||||
=head2
|
||||
|
|
|
|||
|
|
@ -81,14 +81,14 @@ if ( $branch and my $library = Koha::Libraries->find($branch) ) {
|
|||
if ( defined($userenv_register_id)
|
||||
&& ( $userenv_register_id ne $register_id ) )
|
||||
{
|
||||
my $old_register_name = C4::Context->userenv->{'register_name'} || '';
|
||||
my $register = Koha::Cash::Registers->find($register_id);
|
||||
$template->param(LoginRegisterID => $register_id); # update template for new register
|
||||
$template->param(LoginRegisterName => $register ? $register->name : ''); # update template for new register
|
||||
$session->param( 'register_id', $register_id );
|
||||
$session->param( 'register_name', $register ? $register->name : '' );
|
||||
push @updated,
|
||||
{
|
||||
updated_register => 1,
|
||||
new_register => $register ? $register->name : ''
|
||||
old_register => $old_register_name
|
||||
};
|
||||
}
|
||||
$session->flush();
|
||||
|
|
|
|||
|
|
@ -45,14 +45,14 @@
|
|||
Updated:<ul>
|
||||
[% FOREACH update IN updated %]
|
||||
[% IF ( update.updated_branch || update.updated_desk || update.updated_register ) %]
|
||||
[% IF ( updated.updated.branch ) %]
|
||||
[% IF ( updated.updated_branch ) %]
|
||||
<li>Library: [% update.old_branch or "?" | html %] ⇒ [% update.new_branch or "?" | html %]</li>
|
||||
[% END %]
|
||||
[% IF ( update.updated_desk ) %]
|
||||
<li>Desk: [% update.old_desk or "?" | html %] ⇒ [% LoginDeskname or "?" | html %]</li>
|
||||
[% END %]
|
||||
[% IF ( updated.updated_register ) %]
|
||||
<li>Register: [% updated.new_register | html %]</li>
|
||||
<li>Register: [% updated.old_register or "?" | html %] ⇒ [% Registers.session_register_name or "?" | html %]</li>
|
||||
[% END %]
|
||||
[% ELSE %]
|
||||
<li>ERROR - unknown</li>
|
||||
|
|
|
|||
Loading…
Reference in New Issue