Bug 28907: REST - Remove allow-owner from public article requests cancel route

To test:
1. prove t/db_dependent/api/v1/article_requests.t
2. Apply patch
3. prove t/db_dependent/api/v1/article_requests.t

Observe success in both cases.

Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
This commit is contained in:
Lari Taskula 2024-09-18 11:21:30 +00:00 committed by JesseM
parent a26ed2bb60
commit bdea221c9c
3 changed files with 8 additions and 4 deletions

View File

@ -89,6 +89,8 @@ sub patron_cancel {
);
}
$c->auth->public($patron->id);
# patron_id has been validated by the allow-owner check, so the following call to related
# article requests covers the case of article requests not belonging to the patron
my $article_request = $patron->article_requests->find( $c->validation->param('article_request_id') );

View File

@ -113,5 +113,3 @@
description: Under maintenance
schema:
$ref: "../swagger.yaml#/definitions/error"
x-koha-authorization:
allow-owner: true

View File

@ -84,7 +84,7 @@ subtest 'cancel() tests' => sub {
subtest 'patron_cancel() tests' => sub {
plan tests => 14;
plan tests => 17;
t::lib::Mocks::mock_preference( 'RESTPublicAPI', 1 );
t::lib::Mocks::mock_preference( 'RESTBasicAuth', 1 );
@ -116,10 +116,14 @@ subtest 'patron_cancel() tests' => sub {
my $article_request_2 = $builder->build_object({ class => 'Koha::ArticleRequests', value => { borrowernumber => $another_patron_id } });
# delete another patron's request when unauthorized
$t->delete_ok( "/api/v1/public/patrons/$another_patron_id/article_requests/" . $article_request_2->id )
->status_is(401)->json_is( '/error' => "Authentication failure." );
# delete another patron's request
$t->delete_ok("//$userid:$password@/api/v1/public/patrons/$another_patron_id/article_requests/" . $article_request_2->id)
->status_is(403)
->json_is( '/error' => 'Authorization failure. Missing required permission(s).' );
->json_is( '/error' => "Unprivileged user cannot access another user's resources" );
my $another_article_request = $builder->build_object(
{