if ( psgi_env ) { die 'psgi:exit' }
else { exit }
}
+ $VERSION = 3.07.00.049; # set version for version checking
- $VERSION = 3.02; # set version for version checking
$debug = $ENV{DEBUG};
@ISA = qw(Exporter);
@EXPORT = qw(&checkauth &get_template_and_user &haspermission &get_user_subpermissions);
my $borrowernumber;
my $insecure = C4::Context->preference('insecure');
if ($user or $insecure) {
+ require C4::Members;
# It's possible for $user to be the borrowernumber if they don't have a
# userid defined (and are logging in through some other method, such
# as SSL certs against an email address)
$borrowernumber = getborrowernumber($user) if defined($user);
if (!defined($borrowernumber) && defined($user)) {
- my $borrower = GetMember(borrowernumber => $user);
- if ($borrower) {
- $borrowernumber = $user;
+ my $borrower = C4::Members::GetMember(borrowernumber => $user);
+ if ($borrower) {
+ $borrowernumber = $user;
# A bit of a hack, but I don't know there's a nicer way
# to do it.
$user = $borrower->{firstname} . ' ' . $borrower->{surname};
$template->param( loggedinusername => $user );
$template->param( sessionID => $sessionID );
- my ($total, $pubshelves, $barshelves) = C4::Context->get_shelves_userenv();
- if (defined($pubshelves)) {
- $template->param( pubshelves => scalar @{$pubshelves},
- pubshelvesloop => $pubshelves,
- );
- $template->param( pubtotal => $total->{'pubtotal'}, ) if ($total->{'pubtotal'} > scalar @{$pubshelves});
- }
- if (defined($barshelves)) {
- $template->param( barshelves => scalar @{$barshelves},
- barshelvesloop => $barshelves,
- );
- $template->param( bartotal => $total->{'bartotal'}, ) if ($total->{'bartotal'} > scalar @{$barshelves});
- }
+ my ($total, $pubshelves, $barshelves) = C4::VirtualShelves::GetSomeShelfNames($borrowernumber, 'MASTHEAD');
+ $template->param(
+ pubshelves => $total->{pubtotal},
+ pubshelvesloop => $pubshelves,
+ barshelves => $total->{bartotal},
+ barshelvesloop => $barshelves,
+ );
- require C4::Members;
my ( $borr ) = C4::Members::GetMemberDetails( $borrowernumber );
my @bordat;
$bordat[0] = $borr;
$template->param( sessionID => $sessionID );
- my ($total, $pubshelves) = C4::Context->get_shelves_userenv(); # an anonymous user has no 'barshelves'...
- if (defined $pubshelves) {
- $template->param( pubshelves => scalar @{$pubshelves},
- pubshelvesloop => $pubshelves,
- );
- $template->param( pubtotal => $total->{'pubtotal'}, ) if ($total->{'pubtotal'} > scalar @{$pubshelves});
- }
-
+ my ($total, $pubshelves) = C4::VirtualShelves::GetSomeShelfNames(undef, 'MASTHEAD');
+ $template->param(
+ pubshelves => $total->{pubtotal},
+ pubshelvesloop => $pubshelves,
+ );
}
# Anonymous opac search history
# If opac search history is enabled and at least one search has already been performed
"BiblioDefaultView".C4::Context->preference("BiblioDefaultView") => 1,
EnhancedMessagingPreferences => C4::Context->preference('EnhancedMessagingPreferences'),
GoogleJackets => C4::Context->preference("GoogleJackets"),
- OpenLibraryCovers => C4::Context->preference("OpenLibraryCovers"),
+ OpenLibraryCovers => C4::Context->preference("OpenLibraryCovers"),
KohaAdminEmailAddress => "" . C4::Context->preference("KohaAdminEmailAddress"),
LoginBranchcode => (C4::Context->userenv?C4::Context->userenv->{"branch"}:"insecure"),
LoginFirstname => (C4::Context->userenv?C4::Context->userenv->{"firstname"}:"Bel"),
XSLTDetailsDisplay => C4::Context->preference("XSLTDetailsDisplay"),
XSLTResultsDisplay => C4::Context->preference("XSLTResultsDisplay"),
using_https => $in->{'query'}->https() ? 1 : 0,
- noItemTypeImages => C4::Context->preference("noItemTypeImages"),
+ noItemTypeImages => C4::Context->preference("noItemTypeImages"),
+ marcflavour => C4::Context->preference("marcflavour"),
);
if ( $in->{'type'} eq "intranet" ) {
$template->param(
- AmazonContent => C4::Context->preference("AmazonContent"),
AmazonCoverImages => C4::Context->preference("AmazonCoverImages"),
- AmazonEnabled => C4::Context->preference("AmazonEnabled"),
- AmazonSimilarItems => C4::Context->preference("AmazonSimilarItems"),
AutoLocation => C4::Context->preference("AutoLocation"),
"BiblioDefaultView".C4::Context->preference("IntranetBiblioDefaultView") => 1,
CalendarFirstDayOfWeek => (C4::Context->preference("CalendarFirstDayOfWeek") eq "Sunday")?0:1,
LocalCoverImages => C4::Context->preference('LocalCoverImages'),
OPACLocalCoverImages => C4::Context->preference('OPACLocalCoverImages'),
AllowMultipleCovers => C4::Context->preference('AllowMultipleCovers'),
+ EnableBorrowerFiles => C4::Context->preference('EnableBorrowerFiles'),
);
}
else {
$LibraryNameTitle =~ s/<(?:\/?)(?:br|p)\s*(?:\/?)>/ /sgi;
$LibraryNameTitle =~ s/<(?:[^<>'"]|'(?:[^']*)'|"(?:[^"]*)")*>//sg;
# clean up the busc param in the session if the page is not opac-detail
- if ($in->{'template_name'} =~ /opac-(.+)\.(?:tt|tmpl)$/ && $1 !~ /^(?:MARC|ISBD)?detail$/) {
+ if (C4::Context->preference("OpacBrowseResults") && $in->{'template_name'} =~ /opac-(.+)\.(?:tt|tmpl)$/ && $1 !~ /^(?:MARC|ISBD)?detail$/) {
my $sessionSearch = get_session($sessionID || $in->{'query'}->cookie("CGISESSID"));
$sessionSearch->clear(["busc"]) if ($sessionSearch->param("busc"));
}
} elsif (C4::Context->preference("SearchMyLibraryFirst") && C4::Context->userenv && C4::Context->userenv->{'branch'}) {
$opac_name = C4::Context->userenv->{'branch'};
}
- my $checkstyle = C4::Context->preference("opaccolorstylesheet");
- if ($checkstyle =~ /http/)
- {
- $template->param( opacexternalsheet => $checkstyle);
- } else
- {
- my $opaccolorstylesheet = C4::Context->preference("opaccolorstylesheet");
- $template->param( opaccolorstylesheet => $opaccolorstylesheet);
- }
$template->param(
- AmazonContent => "" . C4::Context->preference("AmazonContent"),
+ opaccolorstylesheet => C4::Context->preference("opaccolorstylesheet"),
AnonSuggestions => "" . C4::Context->preference("AnonSuggestions"),
AuthorisedValueImages => C4::Context->preference("AuthorisedValueImages"),
BranchesLoop => GetBranchesLoop($opac_name),
LibraryName => "" . C4::Context->preference("LibraryName"),
LibraryNameTitle => "" . $LibraryNameTitle,
LoginBranchname => C4::Context->userenv?C4::Context->userenv->{"branchname"}:"",
- OPACAmazonEnabled => C4::Context->preference("OPACAmazonEnabled"),
- OPACAmazonSimilarItems => C4::Context->preference("OPACAmazonSimilarItems"),
OPACAmazonCoverImages => C4::Context->preference("OPACAmazonCoverImages"),
- OPACAmazonReviews => C4::Context->preference("OPACAmazonReviews"),
OPACFRBRizeEditions => C4::Context->preference("OPACFRBRizeEditions"),
OpacHighlightedWords => C4::Context->preference("OpacHighlightedWords"),
OPACItemHolds => C4::Context->preference("OPACItemHolds"),
OpacKohaUrl => C4::Context->preference("OpacKohaUrl"),
OpacMainUserBlock => "" . C4::Context->preference("OpacMainUserBlock"),
OpacNav => "" . C4::Context->preference("OpacNav"),
+ OpacNavRight => "" . C4::Context->preference("OpacNavRight"),
OpacNavBottom => "" . C4::Context->preference("OpacNavBottom"),
OpacPasswordChange => C4::Context->preference("OpacPasswordChange"),
OPACPatronDetails => C4::Context->preference("OPACPatronDetails"),
hidelostitems => C4::Context->preference("hidelostitems"),
mylibraryfirst => (C4::Context->preference("SearchMyLibraryFirst") && C4::Context->userenv) ? C4::Context->userenv->{'branch'} : '',
opaclayoutstylesheet => "" . C4::Context->preference("opaclayoutstylesheet"),
- opacstylesheet => "" . C4::Context->preference("opacstylesheet"),
opacbookbag => "" . C4::Context->preference("opacbookbag"),
opaccredits => "" . C4::Context->preference("opaccredits"),
OpacFavicon => C4::Context->preference("OpacFavicon"),
elsif ( $lasttime < time() - $timeout ) {
# timed logout
$info{'timed_out'} = 1;
- $session->delete();
+ $session->delete() if $session;
C4::Context->_unset_userenv($sessionID);
#_session_log(sprintf "%20s from %16s logged out at %30s (inactivity).\n", $userid,$ip,(strftime "%c",localtime));
$userid = undef;
$session->param('emailaddress'), $session->param('branchprinter')
);
- # Grab borrower's shelves and public shelves and add them to the session
- # $row_count determines how many records are returned from the db query
- # and the number of lists to be displayed of each type in the 'Lists' button drop down
- my $row_count = 10; # FIXME:This probably should be a syspref
- my ($total, $totshelves, $barshelves, $pubshelves);
- ($barshelves, $totshelves) = C4::VirtualShelves::GetRecentShelves(1, $row_count, $borrowernumber);
- $total->{'bartotal'} = $totshelves;
- ($pubshelves, $totshelves) = C4::VirtualShelves::GetRecentShelves(2, $row_count, undef);
- $total->{'pubtotal'} = $totshelves;
- $session->param('barshelves', $barshelves);
- $session->param('pubshelves', $pubshelves);
- $session->param('totshelves', $total);
-
- C4::Context::set_shelves_userenv('bar',$barshelves);
- C4::Context::set_shelves_userenv('pub',$pubshelves);
- C4::Context::set_shelves_userenv('tot',$total);
}
else {
if ($userid) {
# anonymous sessions are created only for the OPAC
$debug and warn "Initiating an anonymous session...";
- # Grab the public shelves and add to the session...
- my $row_count = 20; # FIXME:This probably should be a syspref
- my ($total, $totshelves, $pubshelves);
- ($pubshelves, $totshelves) = C4::VirtualShelves::GetRecentShelves(2, $row_count, undef);
- $total->{'pubtotal'} = $totshelves;
- $session->param('pubshelves', $pubshelves);
- $session->param('totshelves', $total);
- C4::Context::set_shelves_userenv('pub',$pubshelves);
- C4::Context::set_shelves_userenv('tot',$total);
-
# setting a couple of other session vars...
$session->param('ip',$session->remote_addr());
$session->param('lasttime',time());
}
my $template_name = ( $type eq 'opac' ) ? 'opac-auth.tmpl' : 'auth.tmpl';
- my $template = C4::Templates::gettemplate( $template_name, $type, $query );
- $template->param(branchloop => \@branch_loop,);
- my $checkstyle = C4::Context->preference("opaccolorstylesheet");
- if ($checkstyle =~ /\//)
- {
- $template->param( opacexternalsheet => $checkstyle);
- } else
- {
- my $opaccolorstylesheet = C4::Context->preference("opaccolorstylesheet");
- $template->param( opaccolorstylesheet => $opaccolorstylesheet);
- }
+ my $template = C4::Templates::gettemplate($template_name, $type, $query );
$template->param(
- login => 1,
+ branchloop => \@branch_loop,
+ opaccolorstylesheet => C4::Context->preference("opaccolorstylesheet"),
+ opaclayoutstylesheet => C4::Context->preference("opaclayoutstylesheet"),
+ login => 1,
INPUTS => \@inputs,
casAuthentication => C4::Context->preference("casAuthentication"),
suggestion => C4::Context->preference("suggestion"),
LibraryName => C4::Context->preference("LibraryName"),
opacuserlogin => C4::Context->preference("opacuserlogin"),
OpacNav => C4::Context->preference("OpacNav"),
+ OpacNavRight => C4::Context->preference("OpacNavRight"),
OpacNavBottom => C4::Context->preference("OpacNavBottom"),
opaccredits => C4::Context->preference("opaccredits"),
OpacFavicon => C4::Context->preference("OpacFavicon"),
opacreadinghistory => C4::Context->preference("opacreadinghistory"),
opacsmallimage => C4::Context->preference("opacsmallimage"),
- opaclayoutstylesheet => C4::Context->preference("opaclayoutstylesheet"),
opaclanguagesdisplay => C4::Context->preference("opaclanguagesdisplay"),
opacuserjs => C4::Context->preference("opacuserjs"),
opacbookbag => "" . C4::Context->preference("opacbookbag"),
opacheader => C4::Context->preference("opacheader"),
TagsEnabled => C4::Context->preference("TagsEnabled"),
OPACUserCSS => C4::Context->preference("OPACUserCSS"),
- opacstylesheet => C4::Context->preference("opacstylesheet"),
intranetcolorstylesheet =>
C4::Context->preference("intranetcolorstylesheet"),
intranetstylesheet => C4::Context->preference("intranetstylesheet"),
my ( $dbh, $userid, $password, $query ) = @_;
if ($ldap) {
- $debug and print "## checkpw - checking LDAP\n";
+ $debug and print STDERR "## checkpw - checking LDAP\n";
my ($retval,$retcard,$retuserid) = checkpw_ldap(@_); # EXTERNAL AUTH
($retval) and return ($retval,$retcard,$retuserid);
}
return 0;
}
+
END { } # module clean-up code here (global destructor)
1;
__END__