X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/2d3f862b7af94f31860dd264eef7c1bc7de7eae2..7e0ad798bc842b710a27b0e1a7a720b117b2566a:/SL/User.pm diff --git a/SL/User.pm b/SL/User.pm index 16ad74ea3..c74c104a0 100644 --- a/SL/User.pm +++ b/SL/User.pm @@ -125,8 +125,8 @@ sub login { $rc = 0; - my $controls = - parse_dbupdate_controls($form, $myconfig{"dbdriver"}); + my $dbupdater = SL::DBUpgrade2->new($form, $myconfig{"dbdriver"}); + my $controls = $dbupdater->parse_dbupdate_controls; map({ $form->{$_} = $myconfig{$_} } qw(dbname dbhost dbport dbdriver dbuser dbpasswd dbconnect dateformat)); @@ -144,7 +144,7 @@ sub login { if ($form->{"show_dbupdate_warning"}) { print $form->parse_html_template("dbupgrade/warning"); - exit(0); + ::end_of_request(); } # update the tables @@ -163,7 +163,7 @@ sub login { $SIG{QUIT} = 'IGNORE'; $self->dbupdate($form); - $self->dbupdate2($form, $controls); + $self->dbupdate2($form, $dbupdater); close(FH); @@ -412,7 +412,7 @@ sub dbcreate { # Process a Perl script which updates the database. # If the script returns 1 then the update was successful. # Return code "2" means "needs more interaction; remove -# users/nologin and exit". +# users/nologin and end current request". # All other return codes are fatal errors. sub process_perl_script { $main::lxdebug->enter_sub(); @@ -450,10 +450,7 @@ sub process_perl_script { map({ $dbup_myconfig{$_} = $form->{$_}; } qw(dbname dbuser dbpasswd dbhost dbport dbconnect)); - my $nls_file = $filename; - $nls_file =~ s|.*/||; - $nls_file =~ s|.pl$||; - my $dbup_locale = Locale->new($main::language, $nls_file); + my $dbup_locale = $::locale; my $result = eval($contents); @@ -466,10 +463,10 @@ sub process_perl_script { print $form->parse_html_template("dbupgrade/error", { "file" => $filename, "error" => $@ }); - exit(0); + ::end_of_request(); } elsif (1 != $result) { unlink("users/nologin") if (2 == $result); - exit(0); + ::end_of_request(); } if (ref($version_or_control) eq "HASH") { @@ -625,7 +622,7 @@ sub dbneedsupdate { my ($self, $form) = @_; my %members = $main::auth->read_all_users(); - my $controls = parse_dbupdate_controls($form, $form->{dbdriver}); + my $controls = SL::DBUpgrade2->new($form, $form->{dbdriver})->parse_dbupdate_controls; my ($query, $sth, %dbs_needing_updates); @@ -829,7 +826,7 @@ sub dbupdate { sub dbupdate2 { $main::lxdebug->enter_sub(); - my ($self, $form, $controls) = @_; + my ($self, $form, $dbupdater) = @_; $form->{sid} = $form->{dbdefault}; @@ -837,7 +834,7 @@ sub dbupdate2 { my ($query, $sth, $tag); my $rc = -2; - @upgradescripts = sort_dbupdate_controls($controls); + @upgradescripts = $dbupdater->sort_dbupdate_controls; my $db_charset = $main::dbcharset; $db_charset ||= Common::DEFAULT_CHARSET; @@ -864,7 +861,7 @@ sub dbupdate2 { $sth = $dbh->prepare($query); $sth->execute() || $form->dberror($query); while (($tag) = $sth->fetchrow_array()) { - $controls->{$tag}->{"applied"} = 1 if (defined($controls->{$tag})); + $dbupdater->{all_controls}->{$tag}->{"applied"} = 1 if (defined($dbupdater->{all_controls}->{$tag})); } $sth->finish(); @@ -1003,7 +1000,8 @@ sub config_vars { bestellungen rechnungen anfragen lieferantenbestellungen einkaufsrechnungen taxnumber co_ustid duns menustyle template_format default_media default_printer_id copies show_form_details favorites - pdonumber sdonumber hide_cvar_search_options mandatory_departments); + pdonumber sdonumber hide_cvar_search_options mandatory_departments + sepa_creditor_id); $main::lxdebug->leave_sub();