From f57101e37b88a861e2e369d357e12059d8acb8ca Mon Sep 17 00:00:00 2001
From: Alex Buckley <alexbuckley@catalyst.net.nz>
Date: Wed, 17 Aug 2022 20:41:52 +1200
Subject: [PATCH] Bug 30418: Database changes
Sponsored-by: Catalyst IT, New Zealand
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
---
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
diff --git a/installer/data/mysql/atomicupdate/bug_30418.pl b/installer/data/mysql/atomicupdate/bug_30418.pl
new file mode 100755
index 00000000000..f4c425a08cc
--- /dev/null
+++ b/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') });
+ },
+};
diff --git a/installer/data/mysql/kohastructure.sql b/installer/data/mysql/kohastructure.sql
index a3faa37d794..220280bd058 100644
--- a/installer/data/mysql/kohastructure.sql
+++ b/installer/data/mysql/kohastructure.sql
@@ -5988,6 +5988,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
diff --git a/installer/data/mysql/mandatory/userpermissions.sql b/installer/data/mysql/mandatory/userpermissions.sql
index 7b6955de442..9e5057c6356 100644
--- a/installer/data/mysql/mandatory/userpermissions.sql
+++ b/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'),
--
2.30.2