From 9d9ceab5f979c5d7036eb42b2d07572eb47b5abb Mon Sep 17 00:00:00 2001 From: Kyle M Hall Date: Wed, 27 Mar 2019 13:03:16 -0400 Subject: [PATCH] Bug 20256: Update database Test Plan: 1) Apply this patch set 2) Run updatedatabase.pl 3) Create two library groups with some libraries in them, make sure to enable the new feature to limit editing of items 4) Test the functionality, if an item is owned by a library in your group, you should have full editing abilities. If an item is from a different group, you should only be able to make the same changes you would be able to if IndependentBranches were. Signed-off-by: Bob Bennhoff - CLiC Signed-off-by: Martin Renvoize --- installer/data/mysql/atomicupdate/bug_20256.perl | 11 +++++++++++ installer/data/mysql/kohastructure.sql | 1 + installer/data/mysql/mandatory/userpermissions.sql | 1 + 3 files changed, 13 insertions(+) create mode 100644 installer/data/mysql/atomicupdate/bug_20256.perl diff --git a/installer/data/mysql/atomicupdate/bug_20256.perl b/installer/data/mysql/atomicupdate/bug_20256.perl new file mode 100644 index 00000000000..2080f540e75 --- /dev/null +++ b/installer/data/mysql/atomicupdate/bug_20256.perl @@ -0,0 +1,11 @@ +$DBversion = 'XXX'; # will be replaced by the RM +if( CheckVersion( $DBversion ) ) { + $dbh->do( "INSERT IGNORE INTO permissions (module_bit, code, description) VALUES ( 9, 'edit_any_item', 'Edit any item reguardless of home library');" ); + + if ( !column_exists( 'library_groups', 'ft_limit_item_editing' ) ) { + $dbh->do( "ALTER TABLE library_groups ADD COLUMN ft_limit_item_editing tinyint(1) NOT NULL DEFAULT 0 AFTER ft_hide_patron_info" ); + } + + SetVersion( $DBversion ); + print "Upgrade to $DBversion done (Bug 20256 - Add ability to limit editing of items to home library)\n"; +} diff --git a/installer/data/mysql/kohastructure.sql b/installer/data/mysql/kohastructure.sql index a309cea736f..926193c9518 100644 --- a/installer/data/mysql/kohastructure.sql +++ b/installer/data/mysql/kohastructure.sql @@ -3322,6 +3322,7 @@ CREATE TABLE `library_groups` ( `title` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Short description of the goup', `description` mediumtext COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Longer explanation of the group, if necessary', `ft_hide_patron_info` tinyint(1) NOT NULL DEFAULT 0 COMMENT 'Turn on the feature ''Hide patron''s info'' for this group', + `ft_limit_item_editing` tinyint(1) NOT NULL DEFAULT 0 COMMENT 'Turn on the feature "Limit item editing by group" for this group', `ft_search_groups_opac` tinyint(1) NOT NULL DEFAULT 0 COMMENT 'Use this group for staff side search groups', `ft_search_groups_staff` tinyint(1) NOT NULL DEFAULT 0 COMMENT 'Use this group for opac side search groups', `ft_local_hold_group` tinyint(1) NOT NULL DEFAULT 0 COMMENT 'Use this group to identify libraries as pick up location for holds', diff --git a/installer/data/mysql/mandatory/userpermissions.sql b/installer/data/mysql/mandatory/userpermissions.sql index f070e501d81..3c0ecab636c 100644 --- a/installer/data/mysql/mandatory/userpermissions.sql +++ b/installer/data/mysql/mandatory/userpermissions.sql @@ -50,6 +50,7 @@ INSERT INTO permissions (module_bit, code, description) VALUES ( 9, 'edit_items', 'Edit items'), ( 9, 'edit_items_restricted', 'Limit item modification to subfields defined in the SubfieldsToAllowForRestrictedEditing preference (please note that edit_item is still required)'), ( 9, 'delete_all_items', 'Delete all items at once'), + ( 9, 'edit_any_item', 'Edit any item reguardless of home library'), (10, 'payout', 'Perform account payout action'), (10, 'refund', 'Perform account refund action'), (10, 'discount', 'Perform account discount action'), -- 2.30.2