@@ -, +, @@ --- installer/data/mysql/atomicupdate/bug_30418.pl | 16 ++++++++++++++++ installer/data/mysql/kohastructure.sql | 1 + .../data/mysql/mandatory/userpermissions.sql | 1 + 3 files changed, 18 insertions(+) create mode 100755 installer/data/mysql/atomicupdate/bug_30418.pl --- a/installer/data/mysql/atomicupdate/bug_30418.pl +++ a/installer/data/mysql/atomicupdate/bug_30418.pl @@ -0,0 +1,16 @@ +use Modern::Perl; + +return { + bug_number => "30418", + description => "Add new list permission and new column to virtualshelves", + up => sub { + my ($args) = @_; + my ($dbh, $out) = @$args{qw(dbh out)}; + + if( !column_exists( 'virtualshelves', 'allow_change_from_permitted_staff' ) ) { + $dbh->do(q{ALTER TABLE virtualshelves ADD COLUMN `allow_change_from_permitted_staff` tinyint(1) DEFAULT '0' COMMENT 'can staff with edit_public_list_contents permission change contents?'}); + } + + $dbh->do(q{ INSERT IGNORE INTO permissions (module_bit, code, description) VALUES (20, 'edit_public_list_contents', 'Edit public list contents') }); + }, +}; --- a/installer/data/mysql/kohastructure.sql +++ a/installer/data/mysql/kohastructure.sql @@ -5940,6 +5940,7 @@ CREATE TABLE `virtualshelves` ( `allow_change_from_owner` tinyint(1) DEFAULT 1 COMMENT 'can owner change contents?', `allow_change_from_others` tinyint(1) DEFAULT 0 COMMENT 'can others change contents?', `allow_change_from_staff` tinyint(1) DEFAULT 0 COMMENT 'can staff change contents?', + `allow_change_from_permitted_staff` tinyint(1) DEFAULT 0 COMMENT 'can staff with edit_public_list_contents permission change contents?', PRIMARY KEY (`shelfnumber`), KEY `virtualshelves_ibfk_1` (`owner`), CONSTRAINT `virtualshelves_ibfk_1` FOREIGN KEY (`owner`) REFERENCES `borrowers` (`borrowernumber`) ON DELETE SET NULL ON UPDATE SET NULL --- a/installer/data/mysql/mandatory/userpermissions.sql +++ a/installer/data/mysql/mandatory/userpermissions.sql @@ -137,6 +137,7 @@ INSERT INTO permissions (module_bit, code, description) VALUES (19, 'configure', 'Configure plugins'), (20, 'delete_public_lists', 'Delete public lists'), (20, 'edit_public_lists', 'Edit public lists'), + (20, 'edit_public_list_contents', 'Edit public list contents'), (21, 'edit_templates', 'Create and update club templates'), (21, 'edit_clubs', 'Create and update clubs'), (21, 'enroll', 'Enroll patrons in clubs'), --