From 8dc2d482c6b65f81d85eed187d2c84acd653bb83 Mon Sep 17 00:00:00 2001 From: Andrew Fuerste Henry Date: Thu, 12 Mar 2026 21:54:09 +0000 Subject: [PATCH] Bug 42083: atomicupdate for permissions --- .../Bug_42083_add_send_sms_permission.pl | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100755 installer/data/mysql/atomicupdate/Bug_42083_add_send_sms_permission.pl diff --git a/installer/data/mysql/atomicupdate/Bug_42083_add_send_sms_permission.pl b/installer/data/mysql/atomicupdate/Bug_42083_add_send_sms_permission.pl new file mode 100755 index 00000000000..c3aff2aba2d --- /dev/null +++ b/installer/data/mysql/atomicupdate/Bug_42083_add_send_sms_permission.pl @@ -0,0 +1,44 @@ +use Modern::Perl; +use Koha::Installer::Output qw(say_warning say_success say_info); + +return { + bug_number => "42083", + description => "Split send_messages_to_borrowers into email and sms permissions", + up => sub { + my ($args) = @_; + my ( $dbh, $out ) = @$args{qw(dbh out)}; + + $dbh->do( + q{INSERT IGNORE permissions (module_bit, code, description) VALUES (4, 'send_messages_to_borrowers_email', 'Send messages to patrons via email')} + ); + say_success( $out, "Added new permission 'send_messages_to_borrowers_email'" ); + + $dbh->do( + q{INSERT IGNORE permissions (module_bit, code, description) VALUES (4, 'send_messages_to_borrowers_sms', 'Send messages to patrons via sms')} + ); + say_success( $out, "Added new permission 'send_messages_to_borrowers_sms'" ); + + my $insert_sth = + $dbh->prepare("INSERT IGNORE INTO user_permissions (borrowernumber, module_bit, code) VALUES (?, ?, ?)"); + + my $sth = + $dbh->prepare("SELECT borrowernumber FROM user_permissions WHERE code = 'send_messages_to_borrowers'"); + $sth->execute(); + + my @borrowernumbers; + while ( my ($borrowernumber) = $sth->fetchrow_array() ) { + push @borrowernumbers, $borrowernumber; + + my @rows_to_insert = ( map { [ $_, 4, "send_messages_to_borrowers_email" ] } @borrowernumbers ); + foreach my $row (@rows_to_insert) { $insert_sth->execute( @{$row} ); } + } + + say_success( $out, "send_messages_to_borrowers_email added to all borrowers with send_messages_to_borrowers" ); + + $dbh->do(q{DELETE FROM permissions WHERE code='send_messages_to_borrowers'}); + say_success( $out, "Removed permission 'send_messages_to_borrowers'" ); + + $dbh->do(q{DELETE FROM user_permissions WHERE code='send_messages_to_borrowers'}); + say_success( $out, "Removed user_permission 'send_messages_to_borrowers'" ); + }, +}; -- 2.39.5