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;
$!";
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;
# remove lock file
unlink "$userspath/nologin";
- $form->info("... done");
+ print($form->parse_html_template("dbupgrade/footer"));
$rc = -2;
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);
$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();
$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) {
}
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);