]> wagnertech.de Git - mfinanz.git/blobdiff - SL/Dispatcher.pm
Nicht immer alle Session-Werte automatisch laden und parsen
[mfinanz.git] / SL / Dispatcher.pm
index 47c2e2a35cb41d3f56edf222019303445441f236..7abe58f7a9538d0b74facd411b8e83dff216f383 100644 (file)
@@ -164,6 +164,11 @@ sub handle_request {
   $::form        = Form->new;
   %::called_subs = ();
 
+  my $session_result = $::auth->restore_session;
+  $::auth->create_or_refresh_session;
+
+  $::form->read_cgi_input;
+
   eval { ($routing_type, $script_name, $action) = _route_request($script_name); 1; } or return;
 
   if ($routing_type eq 'old') {
@@ -180,11 +185,8 @@ sub handle_request {
     $::form->{script} = "controller.pl";
   }
 
-  pre_request_checks();
-
   eval {
-    my $session_result = $::auth->restore_session;
-    $::auth->create_or_refresh_session;
+    pre_request_checks();
 
     $::form->error($::locale->text('System currently down for maintenance!')) if -e ($::lx_office_conf{paths}->{userspath} . "/nologin") && $script ne 'admin';
 
@@ -202,7 +204,7 @@ sub handle_request {
 
       show_error('login/password_error', 'password') if SL::Auth::OK != $::auth->authenticate($::form->{login}, $::form->{password});
 
-      $::auth->set_session_value('login', $::form->{login}, 'password', $::form->{password});
+      $::auth->store_credentials_in_session(login => $::form->{login}, password => $::form->{password});
       $::auth->create_or_refresh_session;
       $::auth->delete_session_value('FLASH');
       delete $::form->{password};
@@ -225,19 +227,21 @@ sub handle_request {
     1;
   } or do {
     if ($EVAL_ERROR ne END_OF_REQUEST) {
+      print STDERR $EVAL_ERROR;
       $::form->{label_error} = $::cgi->pre($EVAL_ERROR);
       eval { show_error('generic/error') };
     }
   };
 
   # cleanup
+  $::auth->save_session;
+  $::auth->expire_sessions;
+  $::auth->reset;
+
   $::locale   = undef;
   $::form     = undef;
   $::myconfig = ();
   Form::disconnect_standard_dbh;
-  $::auth->expire_session_keys->save_session;
-  $::auth->expire_sessions;
-  $::auth->reset;
 
   $::lxdebug->end_request;
   $::lxdebug->leave_sub;