LP#1488511 - Adding ADMIN_PROXIMITY_ADJUSTMENT permission. user/stompro/lp1488511_ADMIN_PROXIMITY_ADJUSTMENT
authorJosh Stompro <stomproj@larl.org>
Sat, 5 Sep 2015 02:18:22 +0000 (21:18 -0500)
committerJosh Stompro <stomproj@larl.org>
Tue, 8 Sep 2015 16:35:45 +0000 (11:35 -0500)
 - Added ADMIN_PROXIMITY_ADJUSTMENT to seed data.
 - Added upgrade script.
 - Added Regression PGTAP test.

Signed-off-by: Josh Stompro <stomproj@larl.org>
Open-ILS/src/sql/Pg/950.data.seed-values.sql
Open-ILS/src/sql/Pg/t/lp1488511_ADMIN_PROXIMITY_ADJUSTMENT_permission_check.sql [new file with mode: 0644]
Open-ILS/src/sql/Pg/upgrade/xxxx.data.admin_proximity_adjustment.sql [new file with mode: 0644]

index e8bf7c1..a04f2ba 100644 (file)
@@ -1596,7 +1596,9 @@ INSERT INTO permission.perm_list ( id, code, description ) VALUES
  (  561, 'AVAIL_HOLD_COPY_RATIO_EXCEEDED.override', oils_i18n_gettext( 561,
     'Override the AVAIL_HOLD_COPY_RATIO_EXCEEDED event', 'ppl', 'description')),
  ( 562, 'ADMIN_TAG_TABLE', oils_i18n_gettext( 562, 
-    'Allow administration of MARC tag tables', 'ppl', 'description' ))
+    'Allow administration of MARC tag tables', 'ppl', 'description' )),
+ ( 563, 'ADMIN_PROXIMITY_ADJUSTMENT',oils_i18n_gettext( 563, 
+    'Allow administration of Org Unit Proximity Adjustments', 'ppl', 'description' ))
 ;
 
 SELECT SETVAL('permission.perm_list_id_seq'::TEXT, 1000);
diff --git a/Open-ILS/src/sql/Pg/t/lp1488511_ADMIN_PROXIMITY_ADJUSTMENT_permission_check.sql b/Open-ILS/src/sql/Pg/t/lp1488511_ADMIN_PROXIMITY_ADJUSTMENT_permission_check.sql
new file mode 100644 (file)
index 0000000..4fc4cfa
--- /dev/null
@@ -0,0 +1,46 @@
+BEGIN;
+
+SELECT plan(1);
+
+
+-- 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 'ADMIN_PROXIMITY_ADJUSTMENT','Allow administration of Org Unit Proximity Adjustments'
+WHERE NOT EXISTS (
+    SELECT CODE,DESCRIPTION
+    FROM permission.perm_list
+    WHERE CODE = 'ADMIN_PROXIMITY_ADJUSTMENT'
+    );
+
+
+-- 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('ADMIN_PROXIMITY_ADJUSTMENT'), 'ADMIN_PROXIMITY_ADJUSTMENT' , 'Permission ADMIN_PROXIMITY_ADJUSTMENT exists');
+
+DROP FUNCTION test_permission_exists(permcode VARCHAR);
+ROLLBACK;
diff --git a/Open-ILS/src/sql/Pg/upgrade/xxxx.data.admin_proximity_adjustment.sql b/Open-ILS/src/sql/Pg/upgrade/xxxx.data.admin_proximity_adjustment.sql
new file mode 100644 (file)
index 0000000..89daa58
--- /dev/null
@@ -0,0 +1,19 @@
+BEGIN;
+
+-- SELECT evergreen.upgrade_deps_block_check('xxxx', :eg_version);
+
+-- 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
+    'ADMIN_PROXIMITY_ADJUSTMENT',
+    'Allow administration of Org Unit Proximity Adjustments'
+  WHERE NOT EXISTS (
+    SELECT 1 FROM permission.perm_list where code='ADMIN_PROXIMITY_ADJUSTMENT'
+);
+
+-- 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;