From cf97c642cf4ed8de0da5a6c0fccf7eddf827d855 Mon Sep 17 00:00:00 2001 From: Owen Leonard Date: Mon, 16 Dec 2019 17:41:42 +0000 Subject: [PATCH] Bug 24249: OPAC lists page should require login for login-dependent operations This patch modifies opac-shelves.pl so that login is required if the requested operation is anything but "view" and "list." The patch also modifies a couple of "Log in to create a new list" links so that they point to the list creation form instead of opac-user.pl. To test, apply the patch and go to the main lists page (the list of lists) in the OPAC while not logged in. - Click the "Log in to create a new list" link. - Log in. - You should be taken to the "Create a new list" form. - Also test the "New list" link shown in the toolbar when you're viewing the contents of a list. --- .../opac-tmpl/bootstrap/en/modules/opac-shelves.tt | 4 ++-- opac/opac-shelves.pl | 27 +++++++++++++++------- 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-shelves.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-shelves.tt index ec0ffcd4838..c5873c6bb8f 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-shelves.tt +++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-shelves.tt @@ -686,7 +686,7 @@
New list
[% ELSE %] [% IF Koha.Preference( 'opacuserlogin' ) == 1 %] -
Log in to create new lists.
+
Log in to create a new list
[% END %] [% END %] @@ -761,7 +761,7 @@ [%#
%] [% ELSIF NOT loggedinusernumber %] [% IF Koha.Preference( 'opacuserlogin' ) == 1 %] -
Log in to create new lists.
+ [% END %] [% END # IF loggedinusername %]
diff --git a/opac/opac-shelves.pl b/opac/opac-shelves.pl index f671f1f3f11..b765e097e45 100755 --- a/opac/opac-shelves.pl +++ b/opac/opac-shelves.pl @@ -50,14 +50,25 @@ if ( ! C4::Context->preference('virtualshelves') ) { exit; } -my ( $template, $loggedinuser, $cookie ) = get_template_and_user({ - template_name => $template_name, - query => $query, - type => "opac", - authnotrequired => ( C4::Context->preference("OpacPublic") ? 1 : 0 ), - }); - -my $op = $query->param('op') || 'list'; +my $op = $query->param('op') || 'list'; +my ( $template, $loggedinuser, $cookie ); + +if( $op eq 'view' || $op eq 'list' ){ + ( $template, $loggedinuser, $cookie ) = get_template_and_user({ + template_name => $template_name, + query => $query, + type => "opac", + authnotrequired => ( C4::Context->preference("OpacPublic") ? 1 : 0 ), + }); +} else { + ( $template, $loggedinuser, $cookie ) = get_template_and_user({ + template_name => $template_name, + query => $query, + type => "opac", + authnotrequired => 0, + }); +} + my $referer = $query->param('referer') || $op; my $category = $query->param('category') || 1; my ( $shelf, $shelfnumber, @messages ); -- 2.11.0