USTVA überarbeitet...siehe changelog
[kivitendo-erp.git] / SL / User.pm
index 0824a7d..62bc94f 100644 (file)
@@ -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(sprintf($main::locale->text("Upgrading Dataset %s..."), $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($main::locale->text("...done"));
+      print($form->parse_html_template("dbupgrade/footer"));
 
       $rc = -2;
 
@@ -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:<br>${@}<br>" .
-                   "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);