LP1320301 user/blake/LP1320301
authorblake <blake@mobiusconsortium.org>
Mon, 15 Jun 2015 15:52:45 +0000 (10:52 -0500)
committerblake <blake@mobiusconsortium.org>
Mon, 15 Jun 2015 15:52:45 +0000 (10:52 -0500)
Added the MAX_HOLDS.override permission to permission.perm_list
Updated the seed values.
Created upgrade script.
Created pgTAP regression test.

Signed-off-by: blake <blake@mobiusconsortium.org>
Open-ILS/src/sql/Pg/950.data.seed-values.sql
Open-ILS/src/sql/Pg/t/lp1320301_MAX_HOLDS_override_permission_check.sql [new file with mode: 0644]
Open-ILS/src/sql/Pg/upgrade/XXXX.MAX_HOLDS.override.sql [new file with mode: 0644]

index bac8cfc..cf4766d 100644 (file)
@@ -1594,7 +1594,9 @@ INSERT INTO permission.perm_list ( id, code, description ) VALUES
  (  560, 'TOTAL_HOLD_COPY_RATIO_EXCEEDED.override', oils_i18n_gettext( 560,
     'Override the TOTAL_HOLD_COPY_RATIO_EXCEEDED event', 'ppl', 'description')),
  (  561, 'AVAIL_HOLD_COPY_RATIO_EXCEEDED.override', oils_i18n_gettext( 561,
-    'Override the AVAIL_HOLD_COPY_RATIO_EXCEEDED event', 'ppl', 'description'))
+    'Override the AVAIL_HOLD_COPY_RATIO_EXCEEDED event', 'ppl', 'description')),
+ (  562, 'MAX_HOLDS.override', oils_i18n_gettext( 562,
+    'Allows user to override the "The patron has reached the maximum number of holds"', 'ppl', 'description'))
 ;
 
 SELECT SETVAL('permission.perm_list_id_seq'::TEXT, 1000);
diff --git a/Open-ILS/src/sql/Pg/t/lp1320301_MAX_HOLDS_override_permission_check.sql b/Open-ILS/src/sql/Pg/t/lp1320301_MAX_HOLDS_override_permission_check.sql
new file mode 100644 (file)
index 0000000..7af9a29
--- /dev/null
@@ -0,0 +1,46 @@
+BEGIN;
+
+SELECT plan(28);
+
+
+-- Create the row in the database
+-- *******************************************
+-- Pop the next in sequence < 1000
+SELECT SETVAL('permission.perm_list_id_seq', (SELECT MAX(id) from permission.perm_list WHERE id<1000));
+
+-- Only insert when it doesn't exist already
+INSERT INTO permission.perm_list (CODE,DESCRIPTION)
+SELECT 'MAX_HOLDS.override','Allows user to override the "The patron has reached the maximum number of holds"'
+WHERE NOT EXISTS (
+    SELECT CODE,DESCRIPTION
+    FROM permission.perm_list
+    WHERE CODE = 'MAX_HOLDS.override'
+    );
+
+-- Now set the sequence back to >=1000
+SELECT SETVAL('permission.perm_list_id_seq'::TEXT, GREATEST( (SELECT MAX(id) FROM permission.perm_list), 1000 ));
+
+-- *******************************************
+
+
+-- Test it
+-- *******************************************
+
+CREATE OR REPLACE FUNCTION test_permission_exists(permcode VARCHAR) 
+RETURNS TEXT AS 
+$$
+
+BEGIN
+
+RETURN (SELECT COALESCE(code,'') FROM  permission.perm_list WHERE CODE=permcode);
+
+END;
+$$ LANGUAGE plpgsql;
+
+
+-- Test to make sure that the permission exists
+SELECT is( test_permission_exists('MAX_HOLDS.override'), 'MAX_HOLDS.override' , 'Permission MAX_HOLDS.override exists');
+
+DROP FUNCTION test_permission_exists(permcode VARCHAR);
+ROLLBACK;
+
diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.MAX_HOLDS.override.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.MAX_HOLDS.override.sql
new file mode 100644 (file)
index 0000000..6fffc69
--- /dev/null
@@ -0,0 +1,17 @@
+BEGIN; 
+
+-- Pop the next in sequence < 1000
+SELECT SETVAL('permission.perm_list_id_seq', (SELECT MAX(id) from permission.perm_list WHERE id<1000));
+
+INSERT INTO permission.perm_list (CODE,DESCRIPTION) 
+SELECT 'MAX_HOLDS.override','Allows user to override the "The patron has reached the maximum number of holds"'
+WHERE NOT EXISTS (
+    SELECT CODE,DESCRIPTION
+    FROM permission.perm_list
+    WHERE CODE = 'MAX_HOLDS.override'
+    ); 
+
+-- Now set the sequence back to >=1000
+SELECT SETVAL('permission.perm_list_id_seq'::TEXT, GREATEST( (SELECT MAX(id) FROM permission.perm_list), 1000 ));
+
+COMMIT;