X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/29458987fb3e3f2027990a55c7c6e51c68683905..5384e5cb7568d04e61bb5c712d7953df046f3a2c:/scripts/task_server.pl diff --git a/scripts/task_server.pl b/scripts/task_server.pl index cb332ec07..b1baef42e 100755 --- a/scripts/task_server.pl +++ b/scripts/task_server.pl @@ -75,6 +75,23 @@ sub lxinit { die "cannot find locale for user $login" unless $::locale = Locale->new('de'); } +sub per_job_initialization { + $::locale = Locale->new($::myconfig{countrycode} || $::lx_office_conf{system}->{language}); + $::form = Form->new; + $::instance_conf = SL::InstanceConfiguration->new; + $::request = SL::Request->new( + cgi => CGI->new({}), + layout => SL::Layout::None->new, + ); + + $::auth->restore_session; + + $::form->{login} = $lx_office_conf{task_server}->{login}; + $::instance_conf->init; + + $::form->{__ERROR_HANDLER} = sub { die @_ }; +} + sub drop_privileges { my $user = $lx_office_conf{task_server}->{run_as}; return unless $user; @@ -174,8 +191,7 @@ sub gd_run { foreach my $job (@{ $jobs }) { # Provide fresh global variables in case legacy code modifies # them somehow. - $::locale = Locale->new($::lx_office_conf{system}->{language}); - $::form = Form->new; + per_job_initialization(); chdir $exe_dir; @@ -209,6 +225,17 @@ sub gd_run { } } +sub end_of_request { + $main::lxdebug->show_backtrace(); + die <