X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/kivitendo-erp.git/blobdiff_plain/3d7898cf2bab46c72face3011460d093d8778b32..c90b4dcd:/SL/Dispatcher.pm diff --git a/SL/Dispatcher.pm b/SL/Dispatcher.pm index d31fa9b56..6512f0312 100644 --- a/SL/Dispatcher.pm +++ b/SL/Dispatcher.pm @@ -5,7 +5,6 @@ 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. - push @INC, "SL"; # FCGI won't find modules that are not properly named. Help it by inclduging SL } use CGI qw( -no_xhtml); @@ -18,8 +17,8 @@ use SL::LXDebug; use SL::LxOfficeConf; use SL::Locale; use SL::Common; +use SL::Form; use SL::Helper::DateTime; -use Form; use List::Util qw(first); use File::Basename; @@ -36,6 +35,11 @@ sub new { return $self; } +sub interface_type { + my ($self) = @_; + return $self->{interface} eq 'cgi' ? 'CGI' : 'FastCGI'; +} + sub pre_request_checks { if (!$::auth->session_tables_present) { if ($::form->{script} eq 'admin.pl') { @@ -194,11 +198,11 @@ sub handle_request { $::locale = Locale->new($::myconfig{countrycode}); - show_error('login/password_error', 'password') if SL::Auth::OK != $::auth->authenticate($::form->{login}, $::form->{password}, 0); + 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->create_or_refresh_session; - $::auth->delete_session_value('FLASH')->save_session(); + $::auth->delete_session_value('FLASH'); delete $::form->{password}; if ($action) { @@ -228,7 +232,9 @@ sub handle_request { $::locale = undef; $::form = undef; $::myconfig = (); - Form::disconnect_standard_dbh unless $self->_interface_is_fcgi; + Form::disconnect_standard_dbh; + $::auth->expire_session_keys->save_session; + $::auth->dbdisconnect; $::lxdebug->end_request; $::lxdebug->leave_sub;