From: blake Date: Mon, 15 Jun 2015 15:52:45 +0000 (-0500) Subject: LP1320301 X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=refs%2Fheads%2Fuser%2Fblake%2FLP1320301;p=working%2FEvergreen.git LP1320301 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 --- 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..cf4766d401 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, '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 index 0000000000..7af9a2906d --- /dev/null +++ b/Open-ILS/src/sql/Pg/t/lp1320301_MAX_HOLDS_override_permission_check.sql @@ -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 index 0000000000..6fffc69ce2 --- /dev/null +++ b/Open-ILS/src/sql/Pg/upgrade/XXXX.MAX_HOLDS.override.sql @@ -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;