X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=sidebyside;f=SL%2FDispatcher.pm;h=3bf120668f919f0d3b17cb83308795f57f981547;hb=5dd469a517459d54610d9999f1b9c68a5ff29a73;hp=f22cf0e9f772241f0738d210da2bf6446764a4dd;hpb=e055700faea1906bea6c03184ba4516b57cac887;p=kivitendo-erp.git diff --git a/SL/Dispatcher.pm b/SL/Dispatcher.pm index f22cf0e9f..3bf120668 100644 --- a/SL/Dispatcher.pm +++ b/SL/Dispatcher.pm @@ -35,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') { @@ -79,7 +84,6 @@ sub pre_startup_setup { { no warnings 'once'; $::lxdebug = LXDebug->new; - $::auth = SL::Auth->new; $::form = undef; %::myconfig = (); %::called_subs = (); # currently used for recursion detection @@ -155,6 +159,7 @@ sub handle_request { $::cgi = CGI->new(''); $::locale = Locale->new($::lx_office_conf{system}->{language}); $::form = Form->new; + $::auth = SL::Auth->new; %::called_subs = (); eval { ($routing_type, $script_name, $action) = _route_request($script_name); 1; } or return; @@ -193,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) { @@ -227,7 +232,10 @@ 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; + $::auth = undef; $::lxdebug->end_request; $::lxdebug->leave_sub;