From: blake Date: Mon, 15 Jun 2015 17:50:13 +0000 (-0500) Subject: LP1456301 X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=4000623e832e3f160c68f06bb5d361e2d07b80ec;p=working%2FEvergreen.git LP1456301 Added the ITEM_DEPOSIT_REQUIRED.override permission to permission.perm_list Updated the seed values. Created upgrade script. Created pgTAP regression test. Signed-off-by: blake --- 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 bac8cfc6a0..52d5a710a7 100644 --- a/Open-ILS/src/sql/Pg/950.data.seed-values.sql +++ b/Open-ILS/src/sql/Pg/950.data.seed-values.sql @@ -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, 'ITEM_DEPOSIT_REQUIRED.override', oils_i18n_gettext( 562, + 'Allows user to override the item deposits', 'ppl', 'description')) ; SELECT SETVAL('permission.perm_list_id_seq'::TEXT, 1000); diff --git a/Open-ILS/src/sql/Pg/t/lp1456301_ITEM_DEPOSIT_REQUIRED_override_permission_check.sql b/Open-ILS/src/sql/Pg/t/lp1456301_ITEM_DEPOSIT_REQUIRED_override_permission_check.sql new file mode 100644 index 0000000000..200ec5c0aa --- /dev/null +++ b/Open-ILS/src/sql/Pg/t/lp1456301_ITEM_DEPOSIT_REQUIRED_override_permission_check.sql @@ -0,0 +1,46 @@ +BEGIN; + +SELECT plan(29); + + +-- 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 'ITEM_DEPOSIT_REQUIRED.override','Allows user to override the item deposits' +WHERE NOT EXISTS ( + SELECT CODE,DESCRIPTION + FROM permission.perm_list + WHERE CODE = 'ITEM_DEPOSIT_REQUIRED.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('ITEM_DEPOSIT_REQUIRED.override'), 'ITEM_DEPOSIT_REQUIRED.override' , 'Permission ITEM_DEPOSIT_REQUIRED.override exists'); + +DROP FUNCTION test_permission_exists(permcode VARCHAR); +ROLLBACK; diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.ITEM_DEPOSIT_REQUIRED.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.ITEM_DEPOSIT_REQUIRED.sql new file mode 100644 index 0000000000..96cfd6bc38 --- /dev/null +++ b/Open-ILS/src/sql/Pg/upgrade/XXXX.ITEM_DEPOSIT_REQUIRED.sql @@ -0,0 +1,19 @@ +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 'ITEM_DEPOSIT_REQUIRED.override','Allows user to override the item deposits' +WHERE NOT EXISTS ( + SELECT CODE,DESCRIPTION + FROM permission.perm_list + WHERE CODE = 'ITEM_DEPOSIT_REQUIRED.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;