@@ -, +, @@ --- C4/Auth.pm | 6 ++++++ C4/Context.pm | 7 ++++++- Koha/REST/V1/Auth.pm | 2 ++ 3 files changed, 14 insertions(+), 1 deletion(-) --- a/C4/Auth.pm +++ a/C4/Auth.pm @@ -1155,6 +1155,7 @@ sub checkauth { $session->param( 'emailaddress', $emailaddress ); $session->param( 'ip', $session->remote_addr() ); $session->param( 'lasttime', time() ); + $session->param( 'interface', $type); $session->param( 'shibboleth', $shibSuccess ); $debug and printf STDERR "AUTH_4: (%s)\t%s %s - %s\n", map { $session->param($_) } qw(cardnumber firstname surname branch); } @@ -1180,6 +1181,7 @@ sub checkauth { $session->param( 'lasttime', time() ); $session->param( 'ip', $session->remote_addr() ); $session->param( 'sessiontype', 'anon' ); + $session->param( 'interface', $type); } } # END if ( $q_userid elsif ( $type eq "opac" ) { @@ -1192,6 +1194,7 @@ sub checkauth { $session->param( 'ip', $session->remote_addr() ); $session->param( 'lasttime', time() ); $session->param( 'sessiontype', 'anon' ); + $session->param( 'interface', $type); } } # END unless ($userid) @@ -1427,6 +1430,7 @@ sub check_api_auth { my $session = get_session($sessionID); C4::Context->_new_userenv($sessionID); if ($session) { + C4::Context->interface($session->param('interface')); C4::Context->set_userenv( $session->param('number'), $session->param('id'), $session->param('cardnumber'), $session->param('firstname'), @@ -1585,6 +1589,7 @@ sub check_api_auth { $session->param( 'emailaddress', $emailaddress ); $session->param( 'ip', $session->remote_addr() ); $session->param( 'lasttime', time() ); + $session->param( 'interface', 'api' ); } $session->param( 'cas_ticket', $cas_ticket); C4::Context->set_userenv( @@ -1674,6 +1679,7 @@ sub check_cookie_auth { my $session = get_session($sessionID); C4::Context->_new_userenv($sessionID); if ($session) { + C4::Context->interface($session->param('interface')); C4::Context->set_userenv( $session->param('number'), $session->param('id'), $session->param('cardnumber'), $session->param('firstname'), --- a/C4/Context.pm +++ a/C4/Context.pm @@ -1028,7 +1028,12 @@ sub interface { if (defined $interface) { $interface = lc $interface; - if ($interface eq 'opac' || $interface eq 'intranet' || $interface eq 'sip' || $interface eq 'commandline') { + if ( $interface eq 'api' + || $interface eq 'opac' + || $interface eq 'intranet' + || $interface eq 'sip' + || $interface eq 'commandline' ) + { $context->{interface} = $interface; } else { warn "invalid interface : '$interface'"; --- a/Koha/REST/V1/Auth.pm +++ a/Koha/REST/V1/Auth.pm @@ -157,6 +157,7 @@ sub authenticate_api_request { if ($valid_token) { my $patron_id = Koha::ApiKeys->find( $valid_token->{client_id} )->patron_id; $user = Koha::Patrons->find($patron_id); + C4::Context->interface('api'); } else { # If we have "Authorization: Bearer" header and oauth authentication @@ -173,6 +174,7 @@ sub authenticate_api_request { ); } $user = $c->_basic_auth( $authorization_header ); + C4::Context->interface('api'); unless ( $user ) { # If we have "Authorization: Basic" header and authentication # failed, do not try other authentication means --