Allow access to public hold notes via hold "blob"
authorDan Wells <dbw2@calvin.edu>
Fri, 15 Mar 2013 18:47:53 +0000 (14:47 -0400)
committerDan Wells <dbw2@calvin.edu>
Thu, 28 Mar 2013 19:11:54 +0000 (15:11 -0400)
If a hold note is marked as "public", it seems reasonable that it
should be visible to anyone who can see that hold, regardless of
who created the note.

Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Kyle Tomita <ktomita@catalystitservices.com>
Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Holds.pm

index 5135072..8e7e5f7 100644 (file)
@@ -3254,14 +3254,14 @@ sub uber_hold_impl {
     if($hold->usr->id ne $e->requestor->id) {
         # caller is asking for someone else's hold
         $e->allowed('VIEW_HOLD') or return $e->event;
-        $hold->notes( # filter out any non-staff ("private") notes
-            [ grep { $U->is_true($_->staff) } @{$hold->notes} ] );
+        $hold->notes( # filter out any non-staff ("private") notes (unless marked as public)
+            [ grep { $U->is_true($_->staff) or $U->is_true($_->pub) } @{$hold->notes} ] );
 
     } else {
         # caller is asking for own hold, but may not have permission to view staff notes
         unless($e->allowed('VIEW_HOLD')) {
-            $hold->notes( # filter out any staff notes
-                [ grep { !$U->is_true($_->staff) } @{$hold->notes} ] );
+            $hold->notes( # filter out any staff notes (unless marked as public)
+                [ grep { !$U->is_true($_->staff) or $U->is_true($_->pub) } @{$hold->notes} ] );
         }
     }