Perl: split usr_role out of acmcu
authorJane Sandberg <sandbej@linnbenton.edu>
Wed, 2 Sep 2020 17:07:30 +0000 (10:07 -0700)
committerJane Sandberg <sandbej@linnbenton.edu>
Wed, 2 Sep 2020 17:07:30 +0000 (10:07 -0700)
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Open-ILS/src/perlmods/lib/OpenILS/Application/Courses.pm
Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Course.pm

index 836a934..a68ce6b 100644 (file)
@@ -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;
index eaffd44..88c35aa 100644 (file)
@@ -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" => {