From b0341eef92057041f0b2e33f226dafa6b6895cf9 Mon Sep 17 00:00:00 2001
From: Magnus Enger <magnus@libriotech.no>
Date: Thu, 15 Jun 2023 12:13:45 +0000
Subject: [PATCH] Bug 26170: Database update
---
.../bug26170-protected-patrons.pl | 26 +++++++++++++++++++
installer/data/mysql/kohastructure.sql | 2 ++
2 files changed, 28 insertions(+)
create mode 100644 installer/data/mysql/atomicupdate/bug26170-protected-patrons.pl
diff --git a/installer/data/mysql/atomicupdate/bug26170-protected-patrons.pl b/installer/data/mysql/atomicupdate/bug26170-protected-patrons.pl
new file mode 100644
index 0000000000..5d804f85fc
--- /dev/null
+++ b/installer/data/mysql/atomicupdate/bug26170-protected-patrons.pl
@@ -0,0 +1,26 @@
+use Modern::Perl;
+
+return {
+ bug_number => "26170",
+ description => "Create system patrons that cannot be (easily) deleted via the web UI",
+ up => sub {
+ my ($args) = @_;
+ my ($dbh, $out) = @$args{qw(dbh out)};
+ if( !column_exists( 'borrowers', 'protected' ) ) {
+ $dbh->do(q{
+ ALTER TABLE borrowers ADD COLUMN protected tinyint(1) NOT NULL DEFAULT 0
+ COMMENT 'boolean flag to mark selected patrons as protected from deletion'
+ AFTER `primary_contact_method`;
+ });
+ }
+ say $out "Added column borrowers.protected";
+ if( !column_exists( 'deletedborrowers', 'protected' ) ) {
+ $dbh->do(q{
+ ALTER TABLE deletedborrowers ADD COLUMN protected tinyint(1) NOT NULL DEFAULT 0
+ COMMENT 'boolean flag to mark selected patrons as protected from deletion'
+ AFTER `primary_contact_method`;
+ });
+ }
+ say $out "Added column deletedborrowers.protected";
+ },
+};
diff --git a/installer/data/mysql/kohastructure.sql b/installer/data/mysql/kohastructure.sql
index 022dc50533..5327d46f83 100644
--- a/installer/data/mysql/kohastructure.sql
+++ b/installer/data/mysql/kohastructure.sql
@@ -1542,6 +1542,7 @@ CREATE TABLE `borrowers` (
`anonymized` tinyint(1) NOT NULL DEFAULT 0 COMMENT 'flag for data anonymization',
`autorenew_checkouts` tinyint(1) NOT NULL DEFAULT 1 COMMENT 'flag for allowing auto-renewal',
`primary_contact_method` varchar(45) DEFAULT NULL COMMENT 'useful for reporting purposes',
+ `protected` tinyint(1) NOT NULL DEFAULT 0 COMMENT 'boolean flag to mark selected patrons as protected from deletion',
PRIMARY KEY (`borrowernumber`),
UNIQUE KEY `cardnumber` (`cardnumber`),
UNIQUE KEY `userid` (`userid`),
@@ -2669,6 +2670,7 @@ CREATE TABLE `deletedborrowers` (
`anonymized` tinyint(1) NOT NULL DEFAULT 0 COMMENT 'flag for data anonymization',
`autorenew_checkouts` tinyint(1) NOT NULL DEFAULT 1 COMMENT 'flag for allowing auto-renewal',
`primary_contact_method` varchar(45) DEFAULT NULL COMMENT 'useful for reporting purposes',
+ `protected` tinyint(1) NOT NULL DEFAULT 0 COMMENT 'boolean flag to mark selected patrons as protected from deletion',
KEY `borrowernumber` (`borrowernumber`),
KEY `cardnumber` (`cardnumber`),
KEY `sms_provider_id` (`sms_provider_id`)
--
2.34.1