From a022ab1f964ea0e4a4e730b76140bc6200935893 Mon Sep 17 00:00:00 2001 From: Josh Stompro Date: Fri, 4 Sep 2015 21:18:22 -0500 Subject: [PATCH] LP#1488511 - Adding ADMIN_PROXIMITY_ADJUSTMENT permission. - Added ADMIN_PROXIMITY_ADJUSTMENT to seed data. - Added upgrade script. - Added Regression PGTAP test. Signed-off-by: Josh Stompro --- Open-ILS/src/sql/Pg/950.data.seed-values.sql | 4 +- ...ADMIN_PROXIMITY_ADJUSTMENT_permission_check.sql | 46 ++++++++++++++++++++++ .../xxxx.data.admin_proximity_adjustment.sql | 19 +++++++++ 3 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 Open-ILS/src/sql/Pg/t/lp1488511_ADMIN_PROXIMITY_ADJUSTMENT_permission_check.sql create mode 100644 Open-ILS/src/sql/Pg/upgrade/xxxx.data.admin_proximity_adjustment.sql 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 e8bf7c1e3e..a04f2ba89e 100644 --- a/Open-ILS/src/sql/Pg/950.data.seed-values.sql +++ b/Open-ILS/src/sql/Pg/950.data.seed-values.sql @@ -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 index 0000000000..4fc4cfa5d3 --- /dev/null +++ b/Open-ILS/src/sql/Pg/t/lp1488511_ADMIN_PROXIMITY_ADJUSTMENT_permission_check.sql @@ -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 index 0000000000..89daa58294 --- /dev/null +++ b/Open-ILS/src/sql/Pg/upgrade/xxxx.data.admin_proximity_adjustment.sql @@ -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; -- 2.11.0