X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=sidebyside;f=SL%2FUser.pm;h=62bc94f6d6b71290d82a9dbfaa6248359580937b;hb=250b57d48b9051c5c0496b761d94d84bfeb61b49;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);