From 51d1fe94983ae9dfc7d66338b4ab2280c55d769e Mon Sep 17 00:00:00 2001 From: Martin Renvoize Date: Thu, 11 Jun 2026 16:13:14 +0100 Subject: [PATCH] Bug 42667: (QA follow-up) Test edit permission on ownerless reports Add two test cases covering reports with no borrowernumber (NULL owner): a patron without edit_all_reports should be denied, one with the permission should succeed. The POD documents this case but it was not previously exercised. Signed-off-by: Martin Renvoize Signed-off-by: Pedro Amorim --- t/db_dependent/Koha/Reports.t | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/t/db_dependent/Koha/Reports.t b/t/db_dependent/Koha/Reports.t index d95ecd9e1a..b48bb70279 100755 --- a/t/db_dependent/Koha/Reports.t +++ b/t/db_dependent/Koha/Reports.t @@ -568,7 +568,7 @@ subtest 'running' => sub { }; subtest 'check_edit_permission() and store enforcement' => sub { - plan tests => 6; + plan tests => 8; my $owner = $builder->build_object( { class => 'Koha::Patrons', value => { flags => 0 } } ); my $editor = $builder->build_object( { class => 'Koha::Patrons', value => { flags => 0 } } ); @@ -618,6 +618,17 @@ subtest 'check_edit_permission() and store enforcement' => sub { { report_name => 'new_one', savedsql => 'SELECT 1', borrowernumber => $owner->borrowernumber } )->store; } 'creating a new report is not subject to the edit check'; + + my $ownerless = Koha::Report->new( { report_name => 'ownerless_test', savedsql => 'SELECT 1' } )->store; + + t::lib::Mocks::mock_userenv( { patron => $owner } ); + throws_ok { $ownerless->savedsql('SELECT 2')->store } + 'Koha::Exceptions::Report::EditPermission', + 'a patron without edit_all_reports cannot edit an ownerless report'; + + t::lib::Mocks::mock_userenv( { patron => $editor } ); + lives_ok { $ownerless->savedsql('SELECT 3')->store } + 'a patron with edit_all_reports can edit an ownerless report'; }; $schema->storage->txn_rollback;