X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FUser.pm;h=62bc94f6d6b71290d82a9dbfaa6248359580937b;hb=5e49b259ece6c5e4aa80e9c775a894972a139547;hp=7e40414170ce9cf6be6a423f852068518b5e2e56;hpb=21c607d313926d20d39aa16df01a31f6580ffe6c;p=kivitendo-erp.git diff --git a/SL/User.pm b/SL/User.pm index 7e4041417..62bc94f6d 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; @@ -169,12 +173,16 @@ sub login { $!"; map { $form->{$_} = $myconfig{$_} } - qw(dbname dbhost dbport dbdriver dbuser dbpasswd); + qw(dbname dbhost dbport dbdriver dbuser dbpasswd dbconnect); $form->{dbupdate} = "db$myconfig{dbname}"; $form->{ $form->{dbupdate} } = 1; - $form->info("Upgrading Dataset $myconfig{dbname} ..."); + $form->{"stylesheet"} = "lx-office-erp.css"; + $form->{"title"} = $main::locale->text("Dataset upgrade"); + $form->header(); + print($form->parse_html_template("dbupgrade/header", + { "dbname" => $myconfig{dbname} })); # required for Oracle $form->{dbdefault} = $sid; @@ -188,7 +196,7 @@ $!"; # remove lock file unlink "$userspath/nologin"; - $form->info("... done"); + print($form->parse_html_template("dbupgrade/footer")); $rc = -2; @@ -272,7 +280,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 +388,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 +412,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 +429,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);