Browse Source

Bug 26181: Disable override by default in /holds

This patch disables AllowHoldPolicyOverride by default in /holds. It
also adds a header that can be used to request the override explicitly.

Tests are added for this behaviour

To test:
1. Apply the regression tests patch
2. Run:
   $ kshell
  k$ prove t/db_dependent/api/v1/holds.t
=> FAIL: Tests fail because the behaviour is not implemented
3. Apply this patch
4. Repeat 2
=> SUCCESS: Tests pass!
5. Sign off :-D

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
21.05.x
Tomas Cohen Arazi 2 years ago
committed by Jonathan Druart
parent
commit
15fcd755a2
  1. 9
      Koha/REST/V1/Holds.pm
  2. 3
      api/v1/swagger/paths/holds.json

9
Koha/REST/V1/Holds.pm

@ -19,6 +19,8 @@ use Modern::Perl;
use Mojo::Base 'Mojolicious::Controller';
use Mojo::JSON qw(decode_json);
use C4::Biblio;
use C4::Reserves;
@ -169,7 +171,12 @@ sub add {
$can_place_hold->{status} = 'tooManyReserves';
}
my $can_override = C4::Context->preference('AllowHoldPolicyOverride');
my $override_header = $c->req->headers->header('x-koha-override');
$override_header = decode_json($override_header)
if $override_header;
my $can_override = $override_header->{AllowHoldPolicyOverride}
and C4::Context->preference('AllowHoldPolicyOverride');
unless ($can_override || $can_place_hold->{status} eq 'OK' ) {
return $c->render(

3
api/v1/swagger/paths/holds.json

@ -267,6 +267,9 @@
"permissions": {
"reserveforothers": "1"
}
},
"x-koha-override": {
"AllowHoldPolicyOverride": 1
}
}
},

Loading…
Cancel
Save