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,