From ee8a9a6af57300c4cf7b629492cc3c31bf901933 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. - When not logged in click the "Lists" menu in the page's header menu. Clicking "Log in to create a new list" should take you to the login form and then to the list creation form. Signed-off-by: David Nind Signed-off-by: Katrin Fischer Signed-off-by: Martin Renvoize --- .../bootstrap/en/includes/masthead.inc | 7 +---- .../bootstrap/en/modules/opac-shelves.tt | 4 +-- opac/opac-shelves.pl | 27 +++++++++++++------ 3 files changed, 22 insertions(+), 16 deletions(-) diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/includes/masthead.inc b/koha-tmpl/opac-tmpl/bootstrap/en/includes/masthead.inc index 5ee70cc322..a54b7ccc42 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/en/includes/masthead.inc +++ b/koha-tmpl/opac-tmpl/bootstrap/en/includes/masthead.inc @@ -68,12 +68,7 @@ [% END %]
  • New list
  • [% ELSE %] - [% IF Koha.Preference('casAuthentication') %] - [%# CAS authentication is too complicated for modal window %] -
  • Log in to create your own lists
  • - [% ELSE %] -
  • Log in to create your own lists
  • - [% END %] +
  • Log in to create your own lists
  • [% END # / IF loggedinusername %] [% END # / IF opacuserlogin %] 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 424ae632c7..ebaa86e27d 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-shelves.tt +++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-shelves.tt @@ -638,7 +638,7 @@ [% ELSE %] [% IF Koha.Preference( 'opacuserlogin' ) == 1 %] -
    Log in to create new lists.
    + [% END %] [% END %] @@ -713,7 +713,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 6c21573d5d..cd04709af3 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.39.5