From 03910a06906134f24d1621beada017e5ed218723 Mon Sep 17 00:00:00 2001 From: Jane Sandberg Date: Wed, 2 Sep 2020 10:07:30 -0700 Subject: [PATCH] Perl: split usr_role out of acmcu Signed-off-by: Jane Sandberg --- Open-ILS/src/perlmods/lib/OpenILS/Application/Courses.pm | 4 ++-- Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Course.pm | 10 +++++++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application/Courses.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application/Courses.pm index 836a9347df..a68ce6b7fe 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/Application/Courses.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/Application/Courses.pm @@ -191,11 +191,11 @@ sub fetch_course_users { my %patrons; $filter->{course} = $course_id; - $filter->{is_public} = 't' + $filter->{usr_role}->{is_public} = 't' unless ($self->api_name =~ /\.staff/) and $e->allowed('MANAGE_RESERVES'); - $users->{list} = $e->search_asset_course_module_course_users($filter, {order_by => {acmcu => 'id'}}); + $users->{list} = $e->search_asset_course_module_course_users($filter, {flesh => 1, flesh_fields => {acmcu => ['usr_role']}, order_by => {acmcu => 'id'}}); for my $course_user (@{$users->{list}}) { my $patron = {}; $patron->{id} = $course_user->id; diff --git a/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Course.pm b/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Course.pm index eaffd44223..88c35aac32 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Course.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Course.pm @@ -64,10 +64,9 @@ sub load_course_browse { "select" => {"acmcu" => [ 'id', 'usr', - 'is_public' ]}, # TODO: We need to support the chosen library as well... - "where" => {'+acmcu' => 'is_public'} + "where" => {'usr_role' => {'in' => {'select' => {'acmr' => ['id']}, 'where' => {'+acmr' => 'is_public'}}}} }); $results = $e->json_query({ "from" => "au", @@ -88,7 +87,12 @@ sub load_course_browse { "acmcu" => ['usr'] }, "where" => {'-and' => [ - {'+acmcu' => 'is_public'}, + {'usr_role' => { 'in' => { + 'from' => 'acmr', + "select" => { + "acmr" => ['id'] + }, + "where" => {'+acmr' => 'is_public'}}}}, {"course" => { "in" =>{ "from" => "acmc", "select" => { -- 2.11.0