diff --git a/installer/data/mysql/atomicupdate/bug_42667.pl b/installer/data/mysql/atomicupdate/bug_42667.pl new file mode 100755 index 0000000000..08d84bcf11 --- /dev/null +++ b/installer/data/mysql/atomicupdate/bug_42667.pl @@ -0,0 +1,28 @@ +use Modern::Perl; +use Koha::Installer::Output qw(say_warning say_success say_info); + +return { + bug_number => "42667", + description => "Split the ability to edit other librarian's reports into a separate permission", + up => sub { + my ($args) = @_; + my ( $dbh, $out ) = @$args{qw(dbh out)}; + + $dbh->do( + q{ + INSERT IGNORE INTO permissions (module_bit, code, description) + VALUES (16, 'edit_all_reports', 'Edit SQL reports created by other librarians') + } + ); + say $out "Added new permission 'edit_all_reports'"; + + $dbh->do( + q{ + INSERT IGNORE INTO user_permissions (borrowernumber, module_bit, code) + SELECT borrowernumber, 16, 'edit_all_reports' + FROM user_permissions WHERE code = 'create_reports' + } + ); + say $out "Granted 'edit_all_reports' to all patrons who already have 'create_reports'"; + }, +}; diff --git a/installer/data/mysql/mandatory/userpermissions.sql b/installer/data/mysql/mandatory/userpermissions.sql index 6469c74452..dbd907f6dd 100644 --- a/installer/data/mysql/mandatory/userpermissions.sql +++ b/installer/data/mysql/mandatory/userpermissions.sql @@ -148,6 +148,7 @@ INSERT INTO permissions (module_bit, code, description) VALUES (15, 'superserials', 'Manage subscriptions from any branch (only applies when IndependentBranches is used)'), (16, 'execute_reports', 'Execute SQL reports'), (16, 'create_reports', 'Create SQL reports'), + (16, 'edit_all_reports', 'Edit SQL reports created by other librarians'), (16, 'delete_own_reports', 'Delete SQL reports you have created'), (16, 'delete_all_reports', 'Delete SQL reports created by anyone'), (16, 'manage_report_limits', 'Manage report limits'), diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/permissions.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/permissions.inc index ebad368464..b12e828a91 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/permissions.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/permissions.inc @@ -517,6 +517,9 @@ [%- CASE 'create_reports' -%] Create SQL reports ([% name | html %]) + [%- CASE 'edit_all_reports' -%] + Edit SQL reports created by other librarians + ([% name | html %]) [%- CASE 'execute_reports' -%] Execute SQL reports ([% name | html %]) diff --git a/t/Koha/Auth/Permissions.t b/t/Koha/Auth/Permissions.t index c922b61c51..e86812f814 100755 --- a/t/Koha/Auth/Permissions.t +++ b/t/Koha/Auth/Permissions.t @@ -69,6 +69,7 @@ subtest 'normal staff user test' => sub { 'CAN_user_reports_create_reports' => 1, 'CAN_user_reports_delete_own_reports' => 1, 'CAN_user_reports_delete_all_reports' => 1, + 'CAN_user_reports_edit_all_reports' => 1, 'CAN_user_reports_execute_reports' => 1, 'CAN_user_reports_manage_report_limits' => 1, }; @@ -244,6 +245,7 @@ subtest 'superlibrarian tests' => sub { 'CAN_user_reports_create_reports' => 1, 'CAN_user_reports_delete_own_reports' => 1, 'CAN_user_reports_delete_all_reports' => 1, + 'CAN_user_reports_edit_all_reports' => 1, 'CAN_user_reports_execute_reports' => 1, 'CAN_user_reports_manage_report_limits' => 1, 'CAN_user_reports' => 1,