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>
use Mojo::Base 'Mojolicious::Controller';
+use Mojo::JSON qw(decode_json);
+
use C4::Biblio;
use C4::Reserves;
$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(
"permissions": {
"reserveforothers": "1"
}
+ },
+ "x-koha-override": {
+ "AllowHoldPolicyOverride": 1
}
}
},