MHD-Behandlung in Fehlermeldung bei unzureichender Lagermenge.
[kivitendo-erp.git] / login.pl
index 6156dc1..e8a3c5b 100755 (executable)
--- a/login.pl
+++ b/login.pl
 #
 #######################################################################
 
+use strict;
+
+BEGIN {
+  unshift @INC, "modules/override"; # Use our own versions of various modules (e.g. YAML).
+  push    @INC, "modules/fallback"; # Only use our own versions of modules if there's no system version.
+}
 
 # setup defaults, DO NOT CHANGE
-$userspath = "users";
-$templates = "templates";
-$memberfile = "users/members";
-$sendmail = "| /usr/sbin/sendmail -t";
+$main::userspath  = "users";
+$main::templates  = "templates";
+$main::memberfile = "users/members";
+$main::sendmail   = "| /usr/sbin/sendmail -t";
 ########## end ###########################################
 
-
 $| = 1;
 
 use SL::LXDebug;
-$lxdebug = LXDebug->new();
+$main::lxdebug = LXDebug->new();
 
-eval { require "lx-erp.conf"; };
+eval { require "config/lx-erp.conf"; };
+eval { require "config/lx-erp-local.conf"; } if -f "config/lx-erp-local.conf";
 
 if ($ENV{CONTENT_LENGTH}) {
   read(STDIN, $_, $ENV{CONTENT_LENGTH});
@@ -58,19 +64,19 @@ if ($ARGV[0]) {
   $_ = $ARGV[0];
 }
 
-
-%form = split /[&=]/;
+my %form = split /[&=]/;
 
 # fix for apache 2.0 bug
 map { $form{$_} =~ s/\\$// } keys %form;
 
 # name of this script
 $0 =~ tr/\\/\//;
-$pos = rindex $0, '/';
-$script = substr($0, $pos + 1);
+my $pos = rindex $0, '/';
+my $script = substr($0, $pos + 1);
 
+$form{login} =~ s|.*/||;
 
-if (-e "$userspath/nologin" && $script ne 'admin.pl') {
+if (-e "$main::userspath/nologin" && $script ne 'admin.pl') {
   print "content-type: text/plain
 
 Login disabled!\n";
@@ -78,59 +84,11 @@ Login disabled!\n";
   exit;
 }
 
+require "bin/mozilla/installationcheck.pl";
+verify_installation();
 
-if ($form{path}) {
-  $form{path} =~ s/%2f/\//gi;
-  $form{path} =~ s/\.\.\///g;
-
-  if ($form{path} !~ /^bin\//) {
-    print "content-type: text/plain
-
-Invalid path!\n";
-    die;
-  }
-
-
-  $ARGV[0] = "$_&script=$script";
-  require "$form{path}/$script";
-} else {
-
-  if (!$form{terminal}) {
-    if ($ENV{HTTP_USER_AGENT}) {
-      # web browser
-      if ($ENV{HTTP_USER_AGENT} =~ /(mozilla|links|opera|w3m)/i) {
-       $form{terminal} = "mozilla";
-      }
-
-      if ($ENV{HTTP_USER_AGENT} =~ /lynx/i) {
-       $form{terminal} = "lynx";
-      }
-    } else {
-      if ($ENV{TERM} =~ /xterm/) {
-       $form{terminal} = "xterm";
-      }
-      if ($ENV{TERM} =~ /(console|linux|vt.*)/i) {
-       $form{terminal} = "console";
-      }
-    }
-  }
-
-
-  if ($form{terminal}) {
-
-    $ARGV[0] = "path=bin/$form{terminal}&script=$script";
-    map { $ARGV[0] .= "&${_}=$form{$_}" } keys %form;
-
-    require "bin/$form{terminal}/$script";
-    
-  } else {
-
-    print qq|
-  Unknown terminal
-  |;
-  }
-
-}
+$ARGV[0] = "$_&script=$script";
+require "bin/mozilla/$script";
 
 # end of main