[Koha-patches] [PATCH] Bug 4289 Add a syspref 'OpacNotPublic', to hide OPAC search-bar and force authentication on all OPAC pages

Mason James mason at kohaaloha.com
Mon Sep 13 16:43:15 CEST 2010


---
 C4/Auth.pm                                        |   14 ++++++++++++--
 installer/data/mysql/updatedatabase30.pl          |    8 +++++++-
 koha-tmpl/opac-tmpl/prog/en/includes/masthead.inc |   13 ++++++++++++-
 kohaversion.pl                                    |    2 +-
 opac/opac-ISBDdetail.pl                           |    2 +-
 opac/opac-MARCdetail.pl                           |    2 +-
 opac/opac-addbybiblionumber.pl                    |    2 +-
 opac/opac-alert-subscribe.pl                      |    2 +-
 opac/opac-authorities-home.pl                     |    4 ++--
 opac/opac-authoritiesdetail.pl                    |    2 +-
 opac/opac-basket.pl                               |    2 +-
 opac/opac-browser.pl                              |    2 +-
 opac/opac-detail.pl                               |    2 +-
 opac/opac-detailprint.pl                          |    2 +-
 opac/opac-main.pl                                 |    2 +-
 opac/opac-recentacquisitions.pl                   |    2 +-
 opac/opac-review.pl                               |    2 +-
 opac/opac-search.pl                               |    2 +-
 opac/opac-sendbasket.pl                           |    2 +-
 opac/opac-sendshelf.pl                            |    4 ++--
 opac/opac-serial-issues.pl                        |    4 ++--
 opac/opac-shelves.pl                              |    2 +-
 opac/opac-showmarc.pl                             |    2 +-
 opac/opac-showreviews.pl                          |    2 +-
 opac/opac-suggestions.pl                          |    2 +-
 opac/opac-tags_subject.pl                         |    2 +-
 opac/opac-topissues.pl                            |    2 +-
 opac/opac-userupdate.pl                           |    2 +-
 28 files changed, 59 insertions(+), 32 deletions(-)

diff --git a/C4/Auth.pm b/C4/Auth.pm
index a4924a0..f833c6a 100644
--- a/C4/Auth.pm
+++ b/C4/Auth.pm
@@ -29,6 +29,8 @@ use C4::Koha;
 use C4::Branch; # GetBranches
 use C4::VirtualShelves;
 
+#use Smart::Comments '####';
+
 # use utf8;
 use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS $debug $ldap);
 
@@ -308,6 +310,8 @@ sub get_template_and_user {
         } elsif($mylibraryfirst){
             $opac_name = C4::Branch::GetBranchName($mylibraryfirst);
         }
+
+
         $template->param(
             OPACAmazonContent             => "" . C4::Context->preference("OPACAmazonContent"),
             OPACAmazonCoverImages         => "" . C4::Context->preference("OPACAmazonCoverImages"),
@@ -361,6 +365,10 @@ sub get_template_and_user {
             suggestion                => "" . C4::Context->preference("suggestion"),
             virtualshelves            => "" . C4::Context->preference("virtualshelves"),
         );
+
+        $template->param(  OpacNotPublic   => C4::Context->preference("OpacNotPublic") )  
+            unless (  $template->param( 'loggedinusername'  ) );
+
     }
     return ( $template, $borrowernumber, $cookie, $flags);
 }
@@ -493,6 +501,8 @@ sub _session_log {
     close L;
 }
 
+
+
 sub checkauth {
     my $query = shift;
 	$debug and warn "Checking Auth";
@@ -821,8 +831,8 @@ sub checkauth {
         OpacAuthorities      => C4::Context->preference("OpacAuthorities"),
         OpacBrowser          => C4::Context->preference("OpacBrowser"),
         opacheader           => C4::Context->preference("opacheader"),
-        TagsEnabled                  => C4::Context->preference("TagsEnabled"),
-        OPACUserCSS           => C4::Context->preference("OPACUserCSS"),
+        OpacNotPublic        => C4::Context->preference("OpacNotPublic"),
+        OPACUserCSS          => C4::Context->preference("OPACUserCSS"),
         intranetcolorstylesheet =>
 								C4::Context->preference("intranetcolorstylesheet"),
         intranetstylesheet => C4::Context->preference("intranetstylesheet"),
diff --git a/installer/data/mysql/updatedatabase30.pl b/installer/data/mysql/updatedatabase30.pl
index 5002f0f..fb8e162 100644
--- a/installer/data/mysql/updatedatabase30.pl
+++ b/installer/data/mysql/updatedatabase30.pl
@@ -26,7 +26,7 @@ use C4::Installer;
 
 use MARC::Record;
 use MARC::File::XML ( BinaryEncoding => 'utf8' );
- 
+
 # FIXME - The user might be installing a new database, so can't rely
 # on /etc/koha.conf anyway.
 
@@ -688,6 +688,12 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
     SetVersion ($DBversion);
 }
 
+$DBversion = "3.00.05.004";
+if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
+    $dbh->do("INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('OpacNotPublic','0','If set, all OPAC pages require authentication, and OPAC-searchbar is hidden - if user is not logged in','','YesNo')");
+    print "Upgrade to $DBversion done (added 'OpacNotPublic' syspref)\n";
+    SetVersion ($DBversion);
+}
 
 =item DropAllForeignKeys($table)
 
diff --git a/koha-tmpl/opac-tmpl/prog/en/includes/masthead.inc b/koha-tmpl/opac-tmpl/prog/en/includes/masthead.inc
index 74c716e..10ec890 100644
--- a/koha-tmpl/opac-tmpl/prog/en/includes/masthead.inc
+++ b/koha-tmpl/opac-tmpl/prog/en/includes/masthead.inc
@@ -7,6 +7,9 @@
   <!-- TMPL_IF NAME="opacheader" -->
 	<!-- TMPL_VAR NAME="opacheader" -->
   <!-- /TMPL_IF -->
+
+
+
 <div id="opac-main-search" class="yui-g">
    <!-- TMPL_IF NAME="opacsmallimage" -->
    <h1 id="libraryname" style="background-image: url('<!-- TMPL_VAR NAME="opacsmallimage" -->');">
@@ -15,6 +18,10 @@
    <!-- /TMPL_IF --><a href="/cgi-bin/koha/opac-main.pl"><!-- TMPL_IF NAME="LibraryName" --><!-- TMPL_VAR NAME="LibraryName" --><!-- TMPL_ELSE -->Koha Online Catalog<!-- /TMPL_IF --></a></h1>
 
 <div id="fluid">
+
+<!-- TMPL_UNLESS NAME="OpacNotPublic" -->
+
+
 <div id="fluid-offset">
 <!-- TMPL_UNLESS NAME="advsearch" --><form name="searchform" method="get" action="/cgi-bin/koha/opac-search.pl" id="searchform">
     <label for="masthead_search" class="left"> Search <!-- TMPL_IF name="mylibraryfirst" --> (in <!-- TMPL_VAR name="mylibraryfirst" --> only)<!-- /TMPL_IF --></label>
@@ -88,9 +95,13 @@
   <!-- /TMPL_IF -->
 <!-- /TMPL_IF -->
 </div>
- </div>
+
+</div>
 </div>
 
+<!-- /TMPL_UNLESS -->
+
+
 <!-- TMPL_IF NAME="opacbookbag" --><div id="cartDetails">Your cart is empty.</div><!-- /TMPL_IF -->
 
 <!-- TMPL_IF NAME="virtualshelves" -->
diff --git a/kohaversion.pl b/kohaversion.pl
index fa25945..0330642 100644
--- a/kohaversion.pl
+++ b/kohaversion.pl
@@ -10,7 +10,7 @@
 use strict;
 
 sub kohaversion {
-    our $VERSION = '3.00.05.003';
+    our $VERSION = '3.00.05.004';
     # version needs to be set this way
     # so that it can be picked up by Makefile.PL
     # during install
diff --git a/opac/opac-ISBDdetail.pl b/opac/opac-ISBDdetail.pl
index 88d373a..e230e93 100755
--- a/opac/opac-ISBDdetail.pl
+++ b/opac/opac-ISBDdetail.pl
@@ -64,7 +64,7 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
         template_name   => "opac-ISBDdetail.tmpl",
         query           => $query,
         type            => "opac",
-        authnotrequired => 1,
+        authnotrequired => (C4::Context->preference("OpacNotPublic") ? 0 : 1),
         debug           => 1,
     }
 );
diff --git a/opac/opac-MARCdetail.pl b/opac/opac-MARCdetail.pl
index 9826c24..487deda 100755
--- a/opac/opac-MARCdetail.pl
+++ b/opac/opac-MARCdetail.pl
@@ -66,7 +66,7 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
         template_name   => "opac-MARCdetail.tmpl",
         query           => $query,
         type            => "opac",
-        authnotrequired => 1,
+        authnotrequired => (C4::Context->preference("OpacNotPublic") ? 0 : 1),
         debug           => 1,
     }
 );
diff --git a/opac/opac-addbybiblionumber.pl b/opac/opac-addbybiblionumber.pl
index 4c99ed2..0bf5fd5 100755
--- a/opac/opac-addbybiblionumber.pl
+++ b/opac/opac-addbybiblionumber.pl
@@ -59,7 +59,7 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
         template_name   => "opac-addbybiblionumber.tmpl",
         query           => $query,
         type            => "opac",
-        authnotrequired => 1,
+        authnotrequired => (C4::Context->preference("OpacNotPublic") ? 0 : 1),
     }
 );
 
diff --git a/opac/opac-alert-subscribe.pl b/opac/opac-alert-subscribe.pl
index 8e827b6..bfd5429 100755
--- a/opac/opac-alert-subscribe.pl
+++ b/opac/opac-alert-subscribe.pl
@@ -46,7 +46,7 @@ my $biblionumber = $query->param('biblionumber');
         template_name   => "opac-alert-subscribe.tmpl",
         query           => $query,
         type            => "opac",
-        authnotrequired => 1,
+        authnotrequired => (C4::Context->preference("OpacNotPublic") ? 0 : 1),
         debug           => 1,
     }
 );
diff --git a/opac/opac-authorities-home.pl b/opac/opac-authorities-home.pl
index 169e9dd..c71064e 100755
--- a/opac/opac-authorities-home.pl
+++ b/opac/opac-authorities-home.pl
@@ -75,7 +75,7 @@ if ( $op eq "do_search" ) {
             template_name   => "opac-authoritiessearchresultlist.tmpl",
             query           => $query,
             type            => 'opac',
-            authnotrequired => 1,
+            authnotrequired => (C4::Context->preference("OpacNotPublic") ? 0 : 1),
             debug           => 1,
         }
     );
@@ -150,7 +150,7 @@ else {
             template_name   => "opac-authorities-home.tmpl",
             query           => $query,
             type            => 'opac',
-            authnotrequired => 1,
+            authnotrequired => (C4::Context->preference("OpacNotPublic") ? 0 : 1),
             debug           => 1,
         }
     );
diff --git a/opac/opac-authoritiesdetail.pl b/opac/opac-authoritiesdetail.pl
index 430f0f2..9ee8fa8 100755
--- a/opac/opac-authoritiesdetail.pl
+++ b/opac/opac-authoritiesdetail.pl
@@ -61,7 +61,7 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
         template_name   => "opac-authoritiesdetail.tmpl",
         query           => $query,
         type            => "opac",
-        authnotrequired => 1,
+        authnotrequired => (C4::Context->preference("OpacNotPublic") ? 0 : 1),
         debug           => 1,
     }
 );
diff --git a/opac/opac-basket.pl b/opac/opac-basket.pl
index a50bdd5..38538bc 100755
--- a/opac/opac-basket.pl
+++ b/opac/opac-basket.pl
@@ -32,7 +32,7 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user (
         template_name   => "opac-basket.tmpl",
         query           => $query,
         type            => "opac",
-        authnotrequired => 1,
+        authnotrequired => (C4::Context->preference("OpacNotPublic") ? 0 : 1),
         flagsrequired   => { borrow => 1 },
     }
 );
diff --git a/opac/opac-browser.pl b/opac/opac-browser.pl
index f1d98f0..eb72241 100755
--- a/opac/opac-browser.pl
+++ b/opac/opac-browser.pl
@@ -42,7 +42,7 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
         template_name   => "opac-browser.tmpl",
         query           => $query,
         type            => "opac",
-        authnotrequired => 1,
+        authnotrequired => (C4::Context->preference("OpacNotPublic") ? 0 : 1),
         debug           => 1,
     }
 );
diff --git a/opac/opac-detail.pl b/opac/opac-detail.pl
index 7febfa0..38f8a5a 100755
--- a/opac/opac-detail.pl
+++ b/opac/opac-detail.pl
@@ -51,7 +51,7 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
         template_name   => "opac-detail.tmpl",
         query           => $query,
         type            => "opac",
-        authnotrequired => 1,
+        authnotrequired => (  C4::Context->preference("OpacNotPublic") ? 0 :     1 ),
         flagsrequired   => { borrow => 1 },
     }
 );
diff --git a/opac/opac-detailprint.pl b/opac/opac-detailprint.pl
index 8d11cfc..3431406 100755
--- a/opac/opac-detailprint.pl
+++ b/opac/opac-detailprint.pl
@@ -69,7 +69,7 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
         template_name   => ('opac-detailprint.tmpl'),
         query           => $query,
         type            => "opac",
-        authnotrequired => 1,
+        authnotrequired => (C4::Context->preference("OpacNotPublic") ? 0 : 1),
     }
 );
 
diff --git a/opac/opac-main.pl b/opac/opac-main.pl
index f724b9d..83f640e 100755
--- a/opac/opac-main.pl
+++ b/opac/opac-main.pl
@@ -36,7 +36,7 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
         template_name   => "opac-main.tmpl",
         type            => "opac",
         query           => $input,
-        authnotrequired => 1,
+        authnotrequired => (  C4::Context->preference("OpacNotPublic") ? 0 : 1 ), 
         flagsrequired   => { borrow => 1 },
     }
 );
diff --git a/opac/opac-recentacquisitions.pl b/opac/opac-recentacquisitions.pl
index d721cdf..6638ed5 100755
--- a/opac/opac-recentacquisitions.pl
+++ b/opac/opac-recentacquisitions.pl
@@ -23,7 +23,7 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
         template_name   => "opac-recentacquisitions.tmpl",
         query           => $query,
         type            => "opac",
-        authnotrequired => 1,
+        authnotrequired => (C4::Context->preference("OpacNotPublic") ? 0 : 1),
         flagsrequired   => {},
         debug           => 1,
     }
diff --git a/opac/opac-review.pl b/opac/opac-review.pl
index 57a460f..75886ac 100755
--- a/opac/opac-review.pl
+++ b/opac/opac-review.pl
@@ -36,7 +36,7 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
         template_name   => "opac-review.tmpl",
         query           => $query,
         type            => "opac",
-        authnotrequired => 1,
+        authnotrequired => (C4::Context->preference("OpacNotPublic") ? 0 : 1),
     }
 );
 
diff --git a/opac/opac-search.pl b/opac/opac-search.pl
index 74f8fe5..e389cbc 100755
--- a/opac/opac-search.pl
+++ b/opac/opac-search.pl
@@ -56,7 +56,7 @@ else {
     template_name => $template_name,
     query => $cgi,
     type => "opac",
-    authnotrequired => 1,
+    authnotrequired => (C4::Context->preference("OpacNotPublic") ? 0 : 1),
     }
 );
 
diff --git a/opac/opac-sendbasket.pl b/opac/opac-sendbasket.pl
index d450758..a2ff571 100755
--- a/opac/opac-sendbasket.pl
+++ b/opac/opac-sendbasket.pl
@@ -61,7 +61,7 @@ if ( $email_add ) {
             template_name   => "opac-sendbasket.tmpl",
             query           => $query,
             type            => "opac",
-            authnotrequired => 1,
+            authnotrequired => (C4::Context->preference("OpacNotPublic") ? 0 : 1),
             flagsrequired   => { borrow => 1 },
         }
     );
diff --git a/opac/opac-sendshelf.pl b/opac/opac-sendshelf.pl
index 86b494b..885f826 100755
--- a/opac/opac-sendshelf.pl
+++ b/opac/opac-sendshelf.pl
@@ -40,7 +40,7 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user (
         template_name   => "opac-sendshelfform.tmpl",
         query           => $query,
         type            => "opac",
-        authnotrequired => 1,
+        authnotrequired => (C4::Context->preference("OpacNotPublic") ? 0 : 1),
         flagsrequired   => { borrow => 1 },
     }
 );
@@ -64,7 +64,7 @@ if ( $email ) {
             template_name   => "opac-sendshelf.tmpl",
             query           => $query,
             type            => "opac",
-            authnotrequired => 1,
+            authnotrequired => (C4::Context->preference("OpacNotPublic") ? 0 : 1),
             flagsrequired   => { borrow => 1 },
         }
     );
diff --git a/opac/opac-serial-issues.pl b/opac/opac-serial-issues.pl
index 8993d7f..f824008 100755
--- a/opac/opac-serial-issues.pl
+++ b/opac/opac-serial-issues.pl
@@ -48,7 +48,7 @@ if ( $selectview eq "full" ) {
             template_name   => "opac-full-serial-issues.tmpl",
             query           => $query,
             type            => "opac",
-            authnotrequired => 1,
+            authnotrequired => (C4::Context->preference("OpacNotPublic") ? 0 : 1),
             debug           => 1,
         }
     );
@@ -86,7 +86,7 @@ else {
             template_name   => "opac-serial-issues.tmpl",
             query           => $query,
             type            => "opac",
-            authnotrequired => 1,
+            authnotrequired => (C4::Context->preference("OpacNotPublic") ? 0 : 1),
             debug           => 1,
         }
     );
diff --git a/opac/opac-shelves.pl b/opac/opac-shelves.pl
index dbd598c..27e193f 100755
--- a/opac/opac-shelves.pl
+++ b/opac/opac-shelves.pl
@@ -29,7 +29,7 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user({
         template_name   => "opac-shelves.tmpl",
         query           => $query,
         type            => "opac",
-        authnotrequired => 1,
+        authnotrequired => (C4::Context->preference("OpacNotPublic") ? 0 : 1),
     });
 $template->param(listsview => 1);
 # if $loggedinuser is not defined, set it to -1, which should
diff --git a/opac/opac-showmarc.pl b/opac/opac-showmarc.pl
index 2024bcb..5d0d624 100755
--- a/opac/opac-showmarc.pl
+++ b/opac/opac-showmarc.pl
@@ -48,7 +48,7 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user({
         template_name   => "opac-showmarc.tmpl",
         query           => $input,
         type            => "opac",
-        authnotrequired => 1,
+        authnotrequired => (C4::Context->preference("OpacNotPublic") ? 0 : 1),
         debug           => 1,
 });
 
diff --git a/opac/opac-showreviews.pl b/opac/opac-showreviews.pl
index ac8343a..f9e4213 100755
--- a/opac/opac-showreviews.pl
+++ b/opac/opac-showreviews.pl
@@ -34,7 +34,7 @@ my ( $template, $borrowernumber, $cookie ) = &get_template_and_user(
         template_name   => "opac-showreviews.tmpl",
         query           => $query,
         type            => "opac",
-        authnotrequired => 1,
+        authnotrequired => (C4::Context->preference("OpacNotPublic") ? 0 : 1),
     }
 );
 
diff --git a/opac/opac-suggestions.pl b/opac/opac-suggestions.pl
index 838cd05..b99cfd9 100755
--- a/opac/opac-suggestions.pl
+++ b/opac/opac-suggestions.pl
@@ -49,7 +49,7 @@ if ( C4::Context->preference("AnonSuggestions") ) {
             template_name   => "opac-suggestions.tmpl",
             query           => $input,
             type            => "opac",
-            authnotrequired => 1,
+            authnotrequired => (C4::Context->preference("OpacNotPublic") ? 0 : 1),
         }
     );
     if ( !$borrowernumber ) {
diff --git a/opac/opac-tags_subject.pl b/opac/opac-tags_subject.pl
index 5836f70..8316412 100755
--- a/opac/opac-tags_subject.pl
+++ b/opac/opac-tags_subject.pl
@@ -44,7 +44,7 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
         template_name   => "opac-tags_subject.tmpl",
         query           => $query,
         type            => "opac",
-        authnotrequired => 1,
+        authnotrequired => (C4::Context->preference("OpacNotPublic") ? 0 : 1),
         debug           => 1,
     }
 );
diff --git a/opac/opac-topissues.pl b/opac/opac-topissues.pl
index 45130c7..8a566d1 100755
--- a/opac/opac-topissues.pl
+++ b/opac/opac-topissues.pl
@@ -48,7 +48,7 @@ my ($template, $borrowernumber, $cookie)
 	= get_template_and_user({template_name => 'opac-topissues.tmpl',
 				query => $input,
 				type => "opac",
-				authnotrequired => 1,
+				authnotrequired => (C4::Context->preference("OpacNotPublic") ? 0 : 1),
 				debug => 1,
 				});
 my $dbh = C4::Context->dbh;
diff --git a/opac/opac-userupdate.pl b/opac/opac-userupdate.pl
index cd126dd..4687840 100755
--- a/opac/opac-userupdate.pl
+++ b/opac/opac-userupdate.pl
@@ -66,7 +66,7 @@ if ( $updateemailaddress eq '' ) {
             template_name   => "kohaerror.tmpl",
             query           => $query,
             type            => "opac",
-            authnotrequired => 1,
+            authnotrequired => (C4::Context->preference("OpacNotPublic") ? 0 : 1),
             flagsrequired   => { borrow => 1 },
             debug           => 1,
         }
-- 
1.7.1



More information about the Koha-patches mailing list