From 1319f149e73ccf3821a0743b46dd4a2bc8a16c82 Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Fri, 22 Mar 2013 11:33:46 +0100 Subject: [PATCH] Bug 8435: Fix hide subscriptions if not allow If a user does not have the superserials permission and the syspref IndependantBranches is ON, he cannot show subscriptions from others branches. --- C4/Serials.pm | 4 ++++ .../intranet-tmpl/prog/en/modules/serials/serials-search.tt | 4 +++- serials/serials-search.pl | 7 ++++--- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/C4/Serials.pm b/C4/Serials.pm index d820c21..108a097 100644 --- a/C4/Serials.pm +++ b/C4/Serials.pm @@ -676,6 +676,9 @@ sub SearchSubscriptions { for my $subscription ( @$results ) { $subscription->{cannotedit} = not can_edit_subscription( $subscription ); + $subscription->{cannotdisplay} = + ( C4::Context->preference("IndependantBranches") + and $subscription->{branchcode} ne C4::Context->userenv->{'branch'} ) ? 1 : 0; } return @$results; @@ -2503,6 +2506,7 @@ sub can_edit_subscription { return 1 unless $independant_branches; if( $flags % 2 == 1 or C4::Auth::haspermission( $userid, {serials => 'superserials'}), + or C4::Auth::haspermission( $userid, {serials => 'edit_subscription'}), or not defined $subscription->{branchcode} or $subscription->{branchcode} eq '' or $subscription->{branchcode} eq C4::Context->userenv->{'branch'} diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/serials-search.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/serials/serials-search.tt index 60d1231..8609027 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/serials-search.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/serials/serials-search.tt @@ -141,7 +141,7 @@ [% FOREACH subscription IN openedsubscriptions %] - [% UNLESS subscription.cannotedit %] + [% UNLESS subscription.cannotdisplay %] [% IF ( subscription.issn ) %][% subscription.issn %] @@ -218,6 +218,7 @@ [% FOREACH subscription IN closedsubscriptions %] + [% UNLESS subscription.cannotdisplay %] [% IF ( subscription.issn ) %] @@ -249,6 +250,7 @@ [% END %] + [% END %] [% ELSE %] diff --git a/serials/serials-search.pl b/serials/serials-search.pl index 465c1a5..0bcb8f9 100755 --- a/serials/serials-search.pl +++ b/serials/serials-search.pl @@ -96,9 +96,11 @@ if ($routing) { my (@openedsubscriptions, @closedsubscriptions); for my $sub ( @subscriptions ) { unless ( $sub->{closed} ) { - push @openedsubscriptions, $sub; + push @openedsubscriptions, $sub + unless $sub->{cannotdisplay}; } else { - push @closedsubscriptions, $sub; + push @closedsubscriptions, $sub + unless $sub->{cannotdisplay}; } } @@ -127,7 +129,6 @@ $template->param( branches_loop => \@branches_loop, done_searched => $searched, routing => $routing, - size => scalar ( map {$_->{cannotedit} ? () : 1} @subscriptions ), marcflavour => (uc(C4::Context->preference("marcflavour"))) ); -- 1.7.10.4