From: Galen Charlton Date: Wed, 23 Jan 2019 01:53:44 +0000 (-0500) Subject: LP#1772680: fix look-up of authorized services X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=1a3d1d31f7dd7a6d38bd97c1c6a1db293c4dce3f;p=evergreen%2Fpines.git LP#1772680: fix look-up of authorized services We now search for authorized digital services using the patron's home OU _and_ its ancestors. Signed-off-by: Galen Charlton --- diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application/EbookAPI.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application/EbookAPI.pm index 2c9be3a298..541c2bd782 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/Application/EbookAPI.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/Application/EbookAPI.pm @@ -1350,7 +1350,7 @@ sub get_authorized_vendors { } my $handler = new_handler($session_id); - return $handler->get_authorized_vendors(); + return $handler->get_authorized_vendors($editor->requestor->home_ou); } __PACKAGE__->register_method( diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application/EbookAPI/RBDigital.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application/EbookAPI/RBDigital.pm index 2e1449ea9e..a9292da029 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/Application/EbookAPI/RBDigital.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/Application/EbookAPI/RBDigital.pm @@ -40,6 +40,8 @@ use constant EBOOK_API_DOMAIN => 'http://api.rbdigitalstage.com/v1'; use constant EBOOK_API_DOMAIN_QA => 'http://api.rbdigitalqa.com/v1'; use constant EBOOK_API_QA_TOKEN => '5ad925df4ee5df112009e562'; +my $U = 'OpenILS::Application::AppUtils'; + sub new { my( $class, $args ) = @_; $class = ref $class || $class; @@ -125,9 +127,10 @@ sub _get_vendor_library { my $pcrud = OpenSRF::AppSession->create('open-ils.pcrud'); $pcrud->connect(); + my $org_list = $U->get_org_ancestors($home_ou); $ebook_rdsa_req = $pcrud->request('open-ils.pcrud.search.ebook_rdsa.atomic', "ANONYMOUS", { - home_ou => $home_ou, + home_ou => $org_list, "+ebook_rds" => { vendor_key => EBOOK_API_VENDOR } @@ -150,15 +153,16 @@ sub _get_vendor_library { # Call this method to all the vendors (from rbdigital.digital_services table) tied to user's home library in EG sub get_authorized_vendors { - my $home_ou = @_; + my ($self, $home_ou) = @_; my $pcrud = OpenSRF::AppSession->create('open-ils.pcrud'); $pcrud->connect(); + my $org_list = $U->get_org_ancestors($home_ou); my $ebook_rds_req = $pcrud->request('open-ils.pcrud.search.ebook_rds.atomic', "ANONYMOUS", { is_enabled => 't', "+ebook_rdsa" => { - home_ou => $home_ou + home_ou => $org_list } }, { @@ -917,8 +921,9 @@ sub is_authorized_patron { my $pcrud = OpenSRF::AppSession->create('open-ils.pcrud'); $pcrud->connect(); + my $org_list = $U->get_org_ancestors($home_library_id); $ebook_rdsa_req = $pcrud->request('open-ils.pcrud.search.ebook_rdsa.atomic', "ANONYMOUS", - { home_ou => $home_library_id } + { home_ou => $org_list } )->gather(); if ($ebook_rdsa_req && scalar (@$ebook_rdsa_req) > 0) {