X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/21c607d313926d20d39aa16df01a31f6580ffe6c..d99e15b3ded91c9865dfdc6e767499d1bc1b763f:/SL/User.pm diff --git a/SL/User.pm b/SL/User.pm index 7e4041417..f331ca4af 100644 --- a/SL/User.pm +++ b/SL/User.pm @@ -114,8 +114,12 @@ sub login { if ($self->{login}) { if ($self->{password}) { - $form->{password} = crypt $form->{password}, - substr($self->{login}, 0, 2); + if ($form->{hashed_password}) { + $form->{password} = $form->{hashed_password}; + } else { + $form->{password} = crypt($form->{password}, + substr($self->{login}, 0, 2)); + } if ($self->{password} ne $form->{password}) { $main::lxdebug->leave_sub(); return -1; @@ -164,17 +168,25 @@ sub login { if (&update_available($myconfig{"dbdriver"}, $dbversion)) { - # update the tables - open FH, ">$userspath/nologin" or die " -$!"; - map { $form->{$_} = $myconfig{$_} } - qw(dbname dbhost dbport dbdriver dbuser dbpasswd); + qw(dbname dbhost dbport dbdriver dbuser dbpasswd dbconnect); + + $form->{"stylesheet"} = "lx-office-erp.css"; + $form->{"title"} = $main::locale->text("Dataset upgrade"); + $form->header(); + print($form->parse_html_template("dbupgrade/header")); $form->{dbupdate} = "db$myconfig{dbname}"; $form->{ $form->{dbupdate} } = 1; - $form->info("Upgrading Dataset $myconfig{dbname} ..."); + if ($form->{"show_dbupdate_warning"}) { + print($form->parse_html_template("dbupgrade/warning")); + exit(0); + } + + # update the tables + open FH, ">$userspath/nologin" or die " +$!"; # required for Oracle $form->{dbdefault} = $sid; @@ -188,7 +200,7 @@ $!"; # remove lock file unlink "$userspath/nologin"; - $form->info("... done"); + print($form->parse_html_template("dbupgrade/footer")); $rc = -2; @@ -272,7 +284,7 @@ sub dbsources { if ($form->{dbdriver} eq 'Pg') { - $query = qq|SELECT datname FROM pg_database|; + $query = qq|SELECT datname FROM pg_database WHERE NOT ((datname = 'template0') OR (datname = 'template1'))|; $sth = $dbh->prepare($query); $sth->execute || $form->dberror($query); @@ -380,6 +392,9 @@ sub dbcreate { $filename = qq|sql/$form->{chart}-chart.sql|; $self->process_query($form, $dbh, $filename); + $query = "UPDATE defaults SET coa = " . $dbh->quote($form->{"chart"}); + $dbh->do($query) || $form->dberror($query); + $dbh->disconnect; $main::lxdebug->leave_sub(); @@ -401,6 +416,15 @@ sub process_perl_script { $dbh->begin_work(); + 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 $result = eval($contents); if (1 != $result) { @@ -409,8 +433,10 @@ sub process_perl_script { } if (!defined($result)) { - $form->dberror("The database update/creation did not succeed. The file ${filename} containing the following syntax error:
${@}
" . - "All changes in that file have been reverted."); + print($form->parse_html_template("dbupgrade/error", + { "file" => $filename, + "error" => $@ })); + exit(0); } elsif (1 != $result) { unlink("users/nologin") if (2 == $result); exit(0);