Koha-clms/Koha/REST/V1
Lari Taskula 19cbf9701f
Bug 28907: REST - Drop support for allow-owner functionality
...and allow-guarantor functionality. Replaced by $c->auth->public($patron_id)
and/or $c->auth->public_guarantor($patron_id), where $patron_id is the patron's
id that owns the requested resource.

Old method, was applicable to both privileged and public routes:

  api/v1/swagger/paths/route.yaml

  x-koha-authorization:
    allow-owner: true
    allow-guarantor: true

New method, use public routes with no x-koha-authorization:

  GET /public/route/{patron_id}
  Koha/REST/V1/Controller#public_action:

  sub public_action {
      my $c = shift->openapi->valid_input or return;
      my $patron_id = $c->param( 'patron_id' );
      try {
          # Throws an exception that will render a response of 401 if not
          # authenticated and 403 if trying to access another user's resources
          $c->auth->public($patron_id); #or $c->auth->public_guarantor($patron_id)
          ...
          # other code
          ...
      }
      catch {
          $c->unhandled_exception($_);
      }
  }

  Another example of retrieving $patron_id when patron_id is not a request
  parameter:
  GET /public/another/object/{another_object_id}

  my $patron_id = Another::Object->find($another_object_id)->borrowernumber;
  try {
      # 403 if $another_object_id does not belong to API user
      $c->auth->public($patron_id);
      ...

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

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
2025-02-18 19:17:18 +01:00
..
Acquisitions Bug 38204: Tidy 2024-10-30 07:47:42 +01:00
Auth Bug 36937: Remove warning from unit tests 2024-06-13 14:14:08 +01:00
Biblios Bug 37791: Fix 'Biblio not found' messages on the API 2024-10-11 12:21:29 +02:00
CashRegisters Bug 37686: Fix render_resource_not_found() and render_resource_deleted() misses 2024-08-29 18:16:19 +02:00
Clubs Bug 36495: Use render_resource_not_found() helper everywhere 2024-04-26 18:06:13 +02:00
Config/SMTP Bug 36495: Use render_resource_deleted() helper everywhere 2024-04-26 18:06:14 +02:00
ERM Bug 38466: Fix error messages in KBART import 2024-12-12 14:04:06 +01:00
ILL Bug 37686: Fix render_resource_not_found() and render_resource_deleted() misses 2024-08-29 18:16:19 +02:00
OAuth Bug 36219: Re-add missing state param for Oauth/OIDC client 2024-03-04 14:50:41 +01:00
Patrons Bug 28907: REST - Remove allow-owner from public patron hold cancellation 2025-02-18 19:17:18 +01:00
Preservation Bug 37686: Fix render_resource_not_found() and render_resource_deleted() misses 2024-08-29 18:16:19 +02:00
StockRotation Bug 37686: Fix render_resource_not_found() and render_resource_deleted() misses 2024-08-29 18:16:19 +02:00
AdvancedEditorMacro.pm Bug 36495: Use render_resource_deleted() helper everywhere 2024-04-26 18:06:14 +02:00
ArticleRequests.pm Bug 28907: REST - Remove allow-owner from public article requests cancel route 2025-02-18 19:17:18 +01:00
Auth.pm Bug 28907: REST - Drop support for allow-owner functionality 2025-02-18 19:17:18 +01:00
AuthorisedValueCategories.pm Bug 34920: Return sorted av_cats to be able to test 2024-07-01 18:55:47 +02:00
AuthorisedValues.pm Bug 36495: Use render_resource_not_found() helper everywhere 2024-04-26 18:06:13 +02:00
Authorities.pm Bug 36495: Use render_resource_deleted() helper everywhere 2024-04-26 18:06:14 +02:00
BackgroundJobs.pm Revert "Bug 36217: Fix background jobs page's include_last_hour filter" 2024-10-18 14:26:01 +02:00
Biblios.pm Bug 31224: Adapt GET /public/biblios/:biblio_id controller 2024-11-07 16:29:25 +01:00
Bookings.pm Bug 38175: (QA follow-up) DRY out PATCH handling 2024-10-24 18:27:24 +02:00
Checkouts.pm Bug 28907: REST - Remove allow-owner from public checkout availability route 2025-02-18 19:17:18 +01:00
CirculationRules.pm Bug 36641: (follow-up) Ensure limited return works 2024-07-18 18:25:49 +02:00
Cities.pm Bug 36495: Use render_resource_deleted() helper everywhere 2024-04-26 18:06:14 +02:00
DeletedBiblios.pm Bug 37791: Fix 'Biblio not found' messages on the API 2024-10-11 12:21:29 +02:00
ERM.pm Bug 33606: (QA follow-up) Cosmetic changes 2023-07-06 12:24:15 -03:00
ExtendedAttributeTypes.pm Bug 37577: Add additional fields for ERM packages 2024-11-08 16:09:19 +01:00
Holds.pm Bug 30661: Allow to update more hold parameters via REST API 2024-10-25 11:09:52 +02:00
ImportBatchProfiles.pm Bug 36495: Use render_resource_deleted() helper everywhere 2024-04-26 18:06:14 +02:00
ImportRecordMatches.pm Bug 36495: Use render_resource_not_found() helper everywhere 2024-04-26 18:06:13 +02:00
ItemTypes.pm Bug 34008: (QA follow-up) 'item_type_id' should be used 2023-11-01 17:23:15 -03:00
Items.pm Bug 37686: Fix render_resource_not_found() and render_resource_deleted() misses 2024-08-29 18:16:19 +02:00
Libraries.pm Bug 36495: Use render_resource_deleted() helper everywhere 2024-04-26 18:06:14 +02:00
Lists.pm Bug 28965: (QA follow-up) Fix misc qa issues 2024-11-08 16:09:22 +01:00
OAuth.pm Bug 33556: Avoid relying on $c->validation 2023-07-21 17:14:37 -03:00
Patrons.pm Bug 28907: REST - Remove allow-owner from public guarantors can see charges and checkouts 2025-02-18 19:17:18 +01:00
Preservation.pm Bug 30708: Tidy perl files 2023-10-18 15:42:04 -03:00
Quotes.pm Bug 36495: Use render_resource_deleted() helper everywhere 2024-04-26 18:06:14 +02:00
RecordSources.pm Bug 37513: Handle Koha::Exceptions::Object::FKConstraintDeletio in controller 2024-08-27 12:14:24 +02:00
ReturnClaims.pm Bug 33292: Add logic to handle refunding a lost fee 2024-10-24 13:38:15 +02:00
SearchFilter.pm Bug 36495: Use render_resource_deleted() helper everywhere 2024-04-26 18:06:14 +02:00
Static.pm Bug 37686: Fix render_resource_not_found() and render_resource_deleted() misses 2024-08-29 18:16:19 +02:00
Suggestions.pm Bug 36495: Use render_resource_deleted() helper everywhere 2024-04-26 18:06:14 +02:00
Tickets.pm Bug 35657: Add support for assignee_id to ticket_updates endpoint 2024-05-02 15:03:35 +02:00
TransferLimits.pm Bug 37686: Fix render_resource_not_found() and render_resource_deleted() misses 2024-08-29 18:16:19 +02:00
TwoFactorAuth.pm Bug 36495: Use render_resource_deleted() helper everywhere 2024-04-26 18:06:14 +02:00