From: Jeff Davis <jdavis@sitka.bclibraries.ca>
Date: Wed, 6 May 2020 21:22:49 +0000 (-0700)
Subject: LP#1835127: scoped permissions for reservations
X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=0c4e0ec5116c28993843c808000f99622363dc54;p=evergreen%2Fequinox.git

LP#1835127: scoped permissions for reservations

Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
---

diff --git a/Open-ILS/examples/fm_IDL.xml b/Open-ILS/examples/fm_IDL.xml
index e47f7228b3..a312c105ef 100644
--- a/Open-ILS/examples/fm_IDL.xml
+++ b/Open-ILS/examples/fm_IDL.xml
@@ -5431,10 +5431,10 @@ SELECT  usr,
 		</links>
 		<permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
 			<actions>
-				<create permission="ADMIN_BOOKING_RESERVATION" global_required='true'/>
-				<retrieve permission="STAFF_LOGIN" global_required='true'/>
-				<update permission="ADMIN_BOOKING_RESERVATION" global_required='true'/>
-				<delete permission="ADMIN_BOOKING_RESERVATION" global_required='true'/>
+				<create permission="ADMIN_BOOKING_RESERVATION" context_field="pickup_lib"/>
+				<retrieve permission="VIEW_BOOKING_RESERVATION" context_field="pickup_lib"/>
+				<update permission="ADMIN_BOOKING_RESERVATION" context_field="pickup_lib"/>
+				<delete permission="ADMIN_BOOKING_RESERVATION" context_field="pickup_lib"/>
 			</actions>
 		</permacrud>
 	</class>
@@ -5451,10 +5451,18 @@ SELECT  usr,
 		</links>
 		<permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
 			<actions>
-				<create permission="ADMIN_BOOKING_RESERVATION_ATTR_MAP" global_required='true'/>
-				<retrieve permission="STAFF_LOGIN" global_required='true'/>
-				<update permission="ADMIN_BOOKING_RESERVATION_ATTR_MAP" global_required='true'/>
-				<delete permission="ADMIN_BOOKING_RESERVATION_ATTR_MAP" global_required='true'/>
+				<create permission="ADMIN_BOOKING_RESERVATION_ATTR_MAP">
+					<context link="reservation" field="pickup_lib"/>
+				</create>
+				<retrieve permission="VIEW_BOOKING_RESERVATION_ATTR_MAP">
+					<context link="reservation" field="pickup_lib"/>
+				</retrieve>
+				<update permission="ADMIN_BOOKING_RESERVATION_ATTR_MAP">
+					<context link="reservation" field="pickup_lib"/>
+				</update>
+				<delete permission="ADMIN_BOOKING_RESERVATION_ATTR_MAP">
+					<context link="reservation" field="pickup_lib"/>
+				</delete>
 			</actions>
 		</permacrud>
 	</class>
diff --git a/Open-ILS/src/sql/Pg/950.data.seed-values.sql b/Open-ILS/src/sql/Pg/950.data.seed-values.sql
index 8f31296ed5..efab317842 100644
--- a/Open-ILS/src/sql/Pg/950.data.seed-values.sql
+++ b/Open-ILS/src/sql/Pg/950.data.seed-values.sql
@@ -1945,6 +1945,10 @@ INSERT INTO permission.perm_list ( id, code, description ) VALUES
     'Allows a user to configure Matomo Analytics org unit settings', 'ppl', 'description')),
  ( 624, 'MANAGE_RESERVES', oils_i18n_gettext(624,
     'Allows user to manage Courses, Course Materials, and associate Users with Courses.', 'ppl', 'description'))
+ ( 625, 'VIEW_BOOKING_RESERVATION', oils_i18n_gettext(623,
+    'View booking reservations', 'ppl', 'description')),
+ ( 626, 'VIEW_BOOKING_RESERVATION_ATTR_MAP', oils_i18n_gettext(624,
+    'View booking reservation attribute maps', 'ppl', 'description'))
 ;
 
 
diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.data.permission.booking_reservation.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.data.permission.booking_reservation.sql
new file mode 100644
index 0000000000..3259ad4687
--- /dev/null
+++ b/Open-ILS/src/sql/Pg/upgrade/XXXX.data.permission.booking_reservation.sql
@@ -0,0 +1,12 @@
+BEGIN;
+
+SELECT evergreen.upgrade_deps_block_check('XXXX', :eg_version);
+
+INSERT INTO permission.perm_list ( id, code, description ) VALUES
+ ( 623, 'VIEW_BOOKING_RESERVATION', oils_i18n_gettext(623,
+    'View booking reservations', 'ppl', 'description')),
+ ( 624, 'VIEW_BOOKING_RESERVATION_ATTR_MAP', oils_i18n_gettext(624,
+    'View booking reservation attribute maps', 'ppl', 'description'))
+;
+
+COMMIT;