Bug 27673: Replace YAML with YAML::XS
[koha-ffzg.git] / about.pl
index 2135399..3c9ceb9 100755 (executable)
--- a/about.pl
+++ b/about.pl
@@ -33,7 +33,7 @@ use XML::Simple;
 use Config;
 use Search::Elasticsearch;
 use Try::Tiny;
-use YAML qw/LoadFile/;
+use YAML::XS;
 
 use C4::Output;
 use C4::Auth;
@@ -43,6 +43,9 @@ use C4::Installer::PerlModules;
 use Koha;
 use Koha::DateUtils qw(dt_from_string output_pref);
 use Koha::Acquisition::Currencies;
+use Koha::BackgroundJob;
+use Koha::BiblioFrameworks;
+use Koha::Email;
 use Koha::Patron::Categories;
 use Koha::Patrons;
 use Koha::Caches;
@@ -50,19 +53,19 @@ use Koha::Config::SysPrefs;
 use Koha::Illrequest::Config;
 use Koha::SearchEngine::Elasticsearch;
 use Koha::Logger;
+use Koha::Filter::MARC::ViewPolicy;
 
 use C4::Members::Statistics;
 
 
 #use Smart::Comments '####';
 
-my $query = new CGI;
+my $query = CGI->new;
 my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
     {
         template_name   => "about.tt",
         query           => $query,
         type            => "intranet",
-        authnotrequired => 0,
         flagsrequired   => { catalogue => 1 },
         debug           => 1,
     }
@@ -195,6 +198,8 @@ my $warnPrefAnonymousPatronAnonSuggestions_PatronDoesNotExist = ( $AnonymousPatr
 
 my $warnPrefAnonymousPatronOPACPrivacy_PatronDoesNotExist = ( not $anonymous_patron and Koha::Patrons->search({ privacy => 2 })->count );
 
+my $warnPrefKohaAdminEmailAddress = not Email::Valid->address(C4::Context->preference('KohaAdminEmailAddress'));
+
 my $errZebraConnection = C4::Context->Zconn("biblioserver",0)->errcode();
 
 my $warnIsRootUser   = (! $loggedinuser);
@@ -203,7 +208,7 @@ my $warnNoActiveCurrency = (! defined Koha::Acquisition::Currencies->get_active)
 
 my @xml_config_warnings;
 
-my $context = new C4::Context;
+my $context = C4::Context->new;
 
 if (    C4::Context->config('zebra_bib_index_mode')
     and C4::Context->config('zebra_bib_index_mode') eq 'grs1' )
@@ -336,6 +341,7 @@ if ( C4::Context->preference('SearchEngine') eq 'Elasticsearch' ) {
         #       fetch the list of available indexes (e.g. plugins, etc)
         $es_status->{nodes} = $es_conf->{nodes};
         my $es = Search::Elasticsearch->new({ nodes => $es_conf->{nodes} });
+        my $es_status->{version} = $es->info->{version}->{number};
 
         foreach my $index ( @indexes ) {
             my $count;
@@ -402,6 +408,10 @@ if (  C4::Context->preference('WebBasedSelfCheck')
     );
 }
 
+if ( C4::Context->preference('EnablePayPalOpacPayments') ) {
+    $template->param( paypal_enabled => 1 );
+}
+
 # Test YAML system preferences
 # FIXME: This is list of current YAML formatted prefs, should by type of preference
 my @yaml_prefs = (
@@ -419,7 +429,7 @@ my @bad_yaml_prefs;
 foreach my $syspref (@yaml_prefs) {
     my $yaml = C4::Context->preference( $syspref );
     if ( $yaml ) {
-        eval { YAML::Load( "$yaml\n\n" ); };
+        eval { YAML::XS::Load( "$yaml\n\n" ); };
         if ($@) {
             push @bad_yaml_prefs, $syspref;
         }
@@ -519,10 +529,47 @@ $template->param( 'bad_yaml_prefs' => \@bad_yaml_prefs ) if @bad_yaml_prefs;
 }
 
 {
-    # Test 'key' config for Pseudonymization
-    $template->param( config_key_no_set => 1 )
+    # Test 'bcrypt_settings' config for Pseudonymization
+    $template->param( config_bcrypt_settings_no_set => 1 )
       if C4::Context->preference('Pseudonymization')
-      and not C4::Context->config('key');
+      and not C4::Context->config('bcrypt_settings');
+}
+
+{
+    my @frameworkcodes = Koha::BiblioFrameworks->search->get_column('frameworkcode');
+    my @hidden_biblionumbers;
+    push @frameworkcodes, ""; # it's not in the biblio_frameworks table!
+    for my $frameworkcode ( @frameworkcodes ) {
+        my $shouldhidemarc_opac = Koha::Filter::MARC::ViewPolicy->should_hide_marc(
+            {
+                frameworkcode => $frameworkcode,
+                interface     => "opac"
+            }
+        );
+        push @hidden_biblionumbers, { frameworkcode => $frameworkcode, interface => 'opac' }
+          if $shouldhidemarc_opac->{biblionumber};
+
+        my $shouldhidemarc_intranet = Koha::Filter::MARC::ViewPolicy->should_hide_marc(
+            {
+                frameworkcode => $frameworkcode,
+                interface     => "intranet"
+            }
+        );
+        push @hidden_biblionumbers, { frameworkcode => $frameworkcode, interface => 'intranet' }
+          if $shouldhidemarc_intranet->{biblionumber};
+    }
+    $template->param( warnHiddenBiblionumbers => \@hidden_biblionumbers );
+}
+
+{
+    # BackgroundJob - test connection to message broker
+    eval {
+        Koha::BackgroundJob->connect;
+    };
+    if ( $@ ) {
+        warn $@;
+        $template->param( warnConnectBroker => $@ );
+    }
 }
 
 my %versions = C4::Context::get_versions();
@@ -544,6 +591,7 @@ $template->param(
     warnPrefAnonymousPatronAnonSuggestions    => $warnPrefAnonymousPatronAnonSuggestions,
     warnPrefAnonymousPatronOPACPrivacy_PatronDoesNotExist     => $warnPrefAnonymousPatronOPACPrivacy_PatronDoesNotExist,
     warnPrefAnonymousPatronAnonSuggestions_PatronDoesNotExist => $warnPrefAnonymousPatronAnonSuggestions_PatronDoesNotExist,
+    warnPrefKohaAdminEmailAddress => $warnPrefKohaAdminEmailAddress,
     errZebraConnection => $errZebraConnection,
     warnIsRootUser => $warnIsRootUser,
     warnNoActiveCurrency => $warnNoActiveCurrency,
@@ -618,7 +666,7 @@ if ( defined C4::Context->config('docdir') ) {
 ## Release teams
 my $teams =
   -e "$docdir" . "/teams.yaml"
-  ? LoadFile( "$docdir" . "/teams.yaml" )
+  ? YAML::XS::LoadFile( "$docdir" . "/teams.yaml" )
   : {};
 my $dev_team = (sort {$b <=> $a} (keys %{$teams->{team}}))[0];
 my $short_version = substr($versions{'kohaVersion'},0,5);
@@ -630,7 +678,7 @@ $template->param( development_version => $development_version );
 ## Contributors
 my $contributors =
   -e "$docdir" . "/contributors.yaml"
-  ? LoadFile( "$docdir" . "/contributors.yaml" )
+  ? YAML::XS::LoadFile( "$docdir" . "/contributors.yaml" )
   : {};
 for my $version ( sort { $a <=> $b } keys %{$teams->{team}} ) {
     for my $role ( keys %{ $teams->{team}->{$version} } ) {