Bug 28948: Make is_public stashed on public routes
This patch makes the API authentication code stash the 'is_public' value when public routes are hit. This will be particularly useful to have $c->objects->search generically pass this info down to the ->to_api method. To test: 1. Apply this patch 2. Run: $ kshell k$ prove t/db_dependent/api/v1/auth_authenticate_api_request.t => SUCCESS: Tests pass! When a public route is reached, the controller has the 'is_public' value stashed 3. Sign off :-D Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
This commit is contained in:
parent
f6c2147ec7
commit
9b2226a649
2 changed files with 26 additions and 1 deletions
|
@ -149,6 +149,9 @@ sub authenticate_api_request {
|
|||
|
||||
my $user;
|
||||
|
||||
$c->stash( 'is_public' => 1 )
|
||||
if $params->{is_public};
|
||||
|
||||
# The following supports retrieval of spec with Mojolicious::Plugin::OpenAPI@1.17 and later (first one)
|
||||
# and older versions (second one).
|
||||
# TODO: remove the latter 'openapi.op_spec' if minimum version is bumped to at least 1.17.
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
use Modern::Perl;
|
||||
|
||||
use Test::More tests => 5;
|
||||
use Test::More tests => 6;
|
||||
use Test::Mojo;
|
||||
|
||||
use Module::Load::Conditional qw(can_load);
|
||||
|
@ -296,6 +296,28 @@ subtest 'x-koha-override stash tests' => sub {
|
|||
$schema->storage->txn_rollback;
|
||||
};
|
||||
|
||||
subtest 'public routes have "is_public" info stashed' => sub {
|
||||
|
||||
plan tests => 2;
|
||||
|
||||
$schema->storage->txn_begin;
|
||||
|
||||
my $stash;
|
||||
$t->app->hook(
|
||||
after_dispatch => sub {
|
||||
$stash = shift->stash;
|
||||
}
|
||||
);
|
||||
|
||||
$t->get_ok('/api/v1/public/biblios/1');
|
||||
|
||||
my $is_public = $stash->{is_public};
|
||||
|
||||
ok( $is_public, 'Correctly stashed the fact it is a public route' );
|
||||
|
||||
$schema->storage->txn_rollback;
|
||||
};
|
||||
|
||||
sub create_user_and_session {
|
||||
|
||||
my $args = shift;
|
||||
|
|
Loading…
Reference in a new issue