Skip to content

Commit 7298dc0

Browse files
Baptiste Wojtkowskikfischer
Baptiste Wojtkowski
authored andcommitted
Bug 34971: Fix permission to close a serial subscription (edit)
Note: there is a minor bug I had to correct, I don't split into two patches since it is very minor and necessary to test that one. Patch 1 - (this one) When a user is on serial collection information, the subscription is not passed to the template, and therefore not passed to serials-toolbar.inc. This makes sense if collection information is called with a biblionumber but not if collection information is called with a subscription id. Consequently, subscription.closed is always false and it is not possible to reopen a basket. Patch 2 - User with incorrect permission can close serials, they just need to access to the page. This is due to serials-toolbar.inc expecting a variable named "cannotedit", which is provided by "subscription-details.pl" and not by "serials-collection.pl" TEST PLAN: Before applying patches : 1 - log in as a user with only receive_serial permission 2 - Open two pages one on /serials-collection.pl?subscriptionid=ID_A, another on /serials-collection.pl?subscriptionid=ID_B 3 - On serial A's collection page, check you can close the serial (wrong behaviour), note you can close it again but not reopen it 4 - Apply first patch 5 - Check you can reopen the serial (wrong behaviour) keep the page open 6 - On serial B's collection page, close the serial, keep the page open 7 - Apply second patch 8 - On page left open on 3 -, click on close, you are redirected to a login page. 8 - Go back to serial A's collection page -> there is no close button anymore 9 - On page left open on 4 -, click on reopen, you are redirected to a login page 10 - Go back to serial B's collection page -> there is no close button anymore Signed-off-by: David Nind <david@davidnind.com> Signed-off-by: Nick Clemens <nick@bywatersolutions.com> Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
1 parent 268d725 commit 7298dc0

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

serials/serials-collection.pl

+1
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,7 @@
219219
routing => C4::Context->preference("RoutingSerials"),
220220
subscr => scalar $query->param('subscriptionid'),
221221
subscriptioncount => $subscriptioncount,
222+
cannotedit => ( not C4::Serials::can_edit_subscription($subscriptionid) ),
222223
location => $location,
223224
callnumber => $callnumber,
224225
uc( C4::Context->preference("marcflavour") ) => 1,

serials/subscription-detail.pl

+8-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,14 @@
4444

4545
# Permission needed if it is a deletion (del) : delete_subscription
4646
# Permission needed otherwise : *
47-
my $permission = ( $op eq "cud-del" ) ? "delete_subscription" : "*";
47+
48+
my %permissions = (
49+
"cud-del" => "delete_subscription",
50+
"cud-close" => "edit_subscription",
51+
"reopen" => "edit_subscription",
52+
);
53+
54+
my $permission = $permissions{$op} // "*";
4855

4956
my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
5057
{

0 commit comments

Comments
 (0)