Bug 22674: Change wording of payments in the GUI
[koha-equinox.git] / about.pl
index 210a923..349dfc9 100755 (executable)
--- a/about.pl
+++ b/about.pl
 use Modern::Perl;
 
 use CGI qw ( -utf8 );
+use DateTime::TimeZone;
+use File::Spec;
 use List::MoreUtils qw/ any /;
 use LWP::Simple;
+use Module::Load::Conditional qw(can_load);
 use XML::Simple;
 use Config;
 use Search::Elasticsearch;
@@ -36,6 +39,7 @@ use C4::Context;
 use C4::Installer;
 
 use Koha;
+use Koha::DateUtils qw(dt_from_string output_pref);
 use Koha::Acquisition::Currencies;
 use Koha::Patron::Categories;
 use Koha::Patrons;
@@ -61,6 +65,38 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
     }
 );
 
+my $config_timezone = C4::Context->config('timezone') // '';
+my $config_invalid  = !DateTime::TimeZone->is_valid_name( $config_timezone );
+my $env_timezone    = $ENV{TZ} // '';
+my $env_invalid     = !DateTime::TimeZone->is_valid_name( $env_timezone );
+my $actual_bad_tz_fallback = 0;
+
+if ( $config_timezone ne '' &&
+     $config_invalid ) {
+    # Bad config
+    $actual_bad_tz_fallback = 1;
+}
+elsif ( $config_timezone eq '' &&
+        $env_timezone    ne '' &&
+        $env_invalid ) {
+    # No config, but bad ENV{TZ}
+    $actual_bad_tz_fallback = 1;
+}
+
+my $time_zone = {
+    actual                 => C4::Context->tz->name,
+    actual_bad_tz_fallback => $actual_bad_tz_fallback,
+    config                 => $config_timezone,
+    config_invalid         => $config_invalid,
+    environment            => $env_timezone,
+    environment_invalid    => $env_invalid
+};
+
+$template->param(
+    time_zone              => $time_zone,
+    current_date_and_time  => output_pref({ dt => dt_from_string(), dateformat => 'iso' })
+);
+
 my $perl_path = $^X;
 if ($^O ne 'VMS') {
     $perl_path .= $Config{_exe} unless $perl_path =~ m/$Config{_exe}$/i;
@@ -140,58 +176,16 @@ my @xml_config_warnings;
 
 my $context = new C4::Context;
 
-if ( ! defined C4::Context->config('zebra_bib_index_mode') ) {
-    push @xml_config_warnings, {
-        error => 'zebra_bib_index_mode_warn'
-    };
-    if ($context->{'server'}->{'biblioserver'}->{'config'} !~ /zebra-biblios-dom.cfg/) {
-        push @xml_config_warnings, {
-            error => 'zebra_bib_mode_seems_grs1'
-        };
-    }
-    else {
-        push @xml_config_warnings, {
-            error => 'zebra_bib_mode_seems_dom'
-        };
-    }
-} else {
-    push @xml_config_warnings, { error => 'zebra_bib_grs_warn' }
-        if C4::Context->config('zebra_bib_index_mode') eq 'grs1';
-}
-
-if ( (C4::Context->config('zebra_bib_index_mode') eq 'dom') &&
-     ($context->{'server'}->{'biblioserver'}->{'config'} !~ /zebra-biblios-dom.cfg/) ) {
-
-    push @xml_config_warnings, {
-        error => 'zebra_bib_index_mode_mismatch_warn'
-    };
-}
-
-if ( (C4::Context->config('zebra_bib_index_mode') eq 'grs1') &&
-     ($context->{'server'}->{'biblioserver'}->{'config'} =~ /zebra-biblios-dom.cfg/) ) {
-
-    push @xml_config_warnings, {
-        error => 'zebra_bib_index_mode_mismatch_warn'
-    };
+if (    C4::Context->config('zebra_bib_index_mode')
+    and C4::Context->config('zebra_bib_index_mode') eq 'grs1' )
+{
+    push @xml_config_warnings, { error => 'zebra_bib_index_mode_is_grs1' };
 }
 
-if ( ! defined C4::Context->config('zebra_auth_index_mode') ) {
-    push @xml_config_warnings, {
-        error => 'zebra_auth_index_mode_warn'
-    };
-    if ($context->{'server'}->{'authorityserver'}->{'config'} !~ /zebra-authorities-dom.cfg/) {
-        push @xml_config_warnings, {
-            error => 'zebra_auth_mode_seems_grs1'
-        };
-    }
-    else {
-        push @xml_config_warnings, {
-            error => 'zebra_auth_mode_seems_dom'
-        };
-    }
-} else {
-    push @xml_config_warnings, { error => 'zebra_auth_grs_warn' }
-        if C4::Context->config('zebra_auth_index_mode') eq 'grs1';
+if (    C4::Context->config('zebra_auth_index_mode')
+    and C4::Context->config('zebra_auth_index_mode') eq 'grs1' )
+{
+    push @xml_config_warnings, { error => 'zebra_auth_index_mode_is_grs1' };
 }
 
 if ( (C4::Context->config('zebra_auth_index_mode') eq 'dom') && ($context->{'server'}->{'authorityserver'}->{'config'} !~ /zebra-authorities-dom.cfg/) ) {
@@ -200,12 +194,6 @@ if ( (C4::Context->config('zebra_auth_index_mode') eq 'dom') && ($context->{'ser
     };
 }
 
-if ( (C4::Context->config('zebra_auth_index_mode') eq 'grs1') && ($context->{'server'}->{'authorityserver'}->{'config'} =~ /zebra-authorities-dom.cfg/) ) {
-    push @xml_config_warnings, {
-        error => 'zebra_auth_index_mode_mismatch_warn'
-    };
-}
-
 if ( ! defined C4::Context->config('log4perl_conf') ) {
     push @xml_config_warnings, {
         error => 'log4perl_entry_missing'
@@ -225,6 +213,14 @@ if ( ! defined C4::Context->config('upload_path') ) {
     }
 }
 
+if ( ! C4::Context->config('tmp_path') ) {
+    my $temporary_directory = C4::Context::temporary_directory;
+    push @xml_config_warnings, {
+        error             => 'tmp_path_missing',
+        effective_tmp_dir => $temporary_directory,
+    }
+}
+
 # Test QueryParser configuration sanity
 if ( C4::Context->preference( 'UseQueryParser' ) ) {
     # Get the QueryParser configuration file name
@@ -257,14 +253,6 @@ if ( C4::Context->preference( 'UseQueryParser' ) ) {
 # Test Zebra facets configuration
 if ( !defined C4::Context->config('use_zebra_facets') ) {
     push @xml_config_warnings, { error => 'use_zebra_facets_entry_missing' };
-} else {
-    if ( C4::Context->config('use_zebra_facets') &&
-         C4::Context->config('zebra_bib_index_mode') ) {
-        # use_zebra_facets works with DOM
-        push @xml_config_warnings, {
-            error => 'use_zebra_facets_needs_dom'
-        } if C4::Context->config('zebra_bib_index_mode') ne 'dom' ;
-    }
 }
 
 # ILL module checks
@@ -294,6 +282,13 @@ if ( C4::Context->preference('ILLModule') ) {
         $warnILLConfiguration = 1;
     }
 
+
+    if ( !$ill_config_from_file->{branch} ) {
+        # branch not defined
+        $template->param( ill_branch_not_defined => 1 );
+        $warnILLConfiguration = 1;
+    }
+
     $template->param( warnILLConfiguration => $warnILLConfiguration );
 }
 
@@ -313,7 +308,6 @@ if ( C4::Context->preference('SearchEngine') eq 'Elasticsearch' ) {
             $template->param( elasticsearch_fatal_config_error => $_->message );
             $es_config_error = 1;
         }
-        warn p($_);
     };
     if ( !$es_config_error ) {
 
@@ -358,6 +352,13 @@ if ( C4::Context->preference('SearchEngine') eq 'Elasticsearch' ) {
     }
 }
 
+if ( C4::Context->preference('RESTOAuth2ClientCredentials') ) {
+    # Do we have the required deps?
+    unless ( can_load( modules => { 'Net::OAuth2::AuthorizationServer' => undef }) ) {
+        $template->param( oauth2_missing_deps => 1 );
+    }
+}
+
 # Sco Patron should not contain any other perms than circulate => self_checkout
 if (  C4::Context->preference('WebBasedSelfCheck')
       and C4::Context->preference('AutoSelfCheckAllowed')
@@ -366,9 +367,9 @@ if (  C4::Context->preference('WebBasedSelfCheck')
     my $all_permissions = C4::Auth::get_user_subpermissions( $userid );
     my ( $has_self_checkout_perm, $has_other_permissions );
     while ( my ( $module, $permissions ) = each %$all_permissions ) {
-        if ( $module eq 'circulate' ) {
+        if ( $module eq 'self_check' ) {
             while ( my ( $permission, $flag ) = each %$permissions ) {
-                if ( $permission eq 'self_checkout' ) {
+                if ( $permission eq 'self_checkout_module' ) {
                     $has_self_checkout_perm = 1;
                 } else {
                     $has_other_permissions = 1;