X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/c8c960bcc06f833933bd3cce3d4aabe68b15fd75..7e0ad798bc842b710a27b0e1a7a720b117b2566a:/SL/User.pm diff --git a/SL/User.pm b/SL/User.pm index a49b3b5c6..c74c104a0 100644 --- a/SL/User.pm +++ b/SL/User.pm @@ -34,17 +34,17 @@ package User; -#use strict; - use IO::File; use Fcntl qw(:seek); -use SL::Auth; +#use SL::Auth; use SL::DBUpgrade2; use SL::DBUtils; use SL::Iconv; use SL::Inifile; +use strict; + sub new { $main::lxdebug->enter_sub(); @@ -107,7 +107,7 @@ sub login { my $dbh = DBI->connect($myconfig{dbconnect}, $myconfig{dbuser}, $myconfig{dbpasswd}) - or $self->error(DBI::errstr); + or $self->error($DBI::errstr); # we got a connection, check the version my $query = qq|SELECT version FROM defaults|; @@ -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(); @@ -445,14 +445,12 @@ sub process_perl_script { $dbh->begin_work(); + # setup dbup_ export vars my %dbup_myconfig = (); 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); @@ -465,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") { @@ -624,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); @@ -802,7 +800,7 @@ sub dbupdate { last if ($version < $mindb); # apply upgrade - $main::lxdebug->message(LXDebug::DEBUG2, "Applying Update $upgradescript"); + $main::lxdebug->message(LXDebug->DEBUG2(), "Applying Update $upgradescript"); if ($file_type eq "sql") { $self->process_query($form, $dbh, "sql/" . $form->{"dbdriver"} . "-upgrade/$upgradescript", $str_maxdb, $db_charset); @@ -828,7 +826,7 @@ sub dbupdate { sub dbupdate2 { $main::lxdebug->enter_sub(); - my ($self, $form, $controls) = @_; + my ($self, $form, $dbupdater) = @_; $form->{sid} = $form->{dbdefault}; @@ -836,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; @@ -863,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(); @@ -886,7 +884,7 @@ sub dbupdate2 { my $file_type = $1; # apply upgrade - $main::lxdebug->message(LXDebug::DEBUG2, "Applying Update $control->{file}"); + $main::lxdebug->message(LXDebug->DEBUG2(), "Applying Update $control->{file}"); print $form->parse_html_template("dbupgrade/upgrade_message2", $control); if ($file_type eq "sql") { @@ -1002,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); + pdonumber sdonumber hide_cvar_search_options mandatory_departments + sepa_creditor_id); $main::lxdebug->leave_sub();