From b839e0a0c88819dab233a546cbff544666186df3 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. --- .../opac-tmpl/bootstrap/en/includes/masthead.inc | 7 +----- .../opac-tmpl/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 5ee70cc3223..a54b7ccc426 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 424ae632c7b..ebaa86e27d4 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 @@
    New list
    [% ELSE %] [% IF Koha.Preference( 'opacuserlogin' ) == 1 %] -
    Log in to create new lists.
    +
    Log in to create a new list
    [% 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 afb0f5e7e61..2f1a8f94288 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