X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FUser.pm;h=c99201244d27da3ecee42fe8ec005edc39c07800;hb=3dd73b25e1edb61144b0fa97d04dac046f81121e;hp=ae61fd2621a14d99e063b22f6a63f0712bf97eaa;hpb=bd4fb92d5fc6e1b97b912427cd395153d63d7713;p=kivitendo-erp.git diff --git a/SL/User.pm b/SL/User.pm index ae61fd262..c99201244 100644 --- a/SL/User.pm +++ b/SL/User.pm @@ -209,7 +209,13 @@ sub login { # remove lock file unlink("$userspath/nologin"); - print($form->parse_html_template("dbupgrade/footer")); + my $menufile = + $self->{"menustyle"} eq "v3" ? "menuv3.pl" : + $self->{"menustyle"} eq "neu" ? "menunew.pl" : + "menu.pl"; + + print($form->parse_html_template("dbupgrade/footer", + { "menufile" => $menufile })); $rc = -2; @@ -355,20 +361,33 @@ sub dbcreate { my ($self, $form) = @_; + $form->{sid} = $form->{dbdefault}; + &dbconnect_vars($form, $form->{dbdefault}); + my $dbh = + DBI->connect($form->{dbconnect}, $form->{dbuser}, $form->{dbpasswd}) + or $form->dberror; + my %dbcreate = ( 'Pg' => qq|CREATE DATABASE "$form->{db}"|, 'Oracle' => qq|CREATE USER "$form->{db}" DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP IDENTIFIED BY "$form->{db}"| ); - $dbcreate{Pg} .= " WITH ENCODING = '$form->{encoding}'" if $form->{encoding}; + my %dboptions = ( + 'Pg' => [], + ); + + push(@{$dboptions{"Pg"}}, "ENCODING = " . $dbh->quote($form->{"encoding"})) + if ($form->{"encoding"}); + if ($form->{"dbdefault"}) { + my $dbdefault = $form->{"dbdefault"}; + $dbdefault =~ s/[^a-zA-Z0-9_\-]//g; + push(@{$dboptions{"Pg"}}, "TEMPLATE = $dbdefault"); + } - $form->{sid} = $form->{dbdefault}; - &dbconnect_vars($form, $form->{dbdefault}); - my $dbh = - DBI->connect($form->{dbconnect}, $form->{dbuser}, $form->{dbpasswd}) - or $form->dberror; my $query = qq|$dbcreate{$form->{dbdriver}}|; + $query .= " WITH " . join(" ", @{$dboptions{"Pg"}}) if (@{$dboptions{"Pg"}}); + $dbh->do($query) || $form->dberror($query); if ($form->{dbdriver} eq 'Oracle') { @@ -417,7 +436,7 @@ sub dbcreate { sub process_perl_script { $main::lxdebug->enter_sub(); - my ($self, $form, $dbh, $filename, $version) = @_; + my ($self, $form, $dbh, $filename, $version_or_control) = @_; open(FH, "$filename") or $form->error("$filename : $!\n"); my $contents = join("", ); @@ -451,8 +470,13 @@ sub process_perl_script { exit(0); } - if ($version) { - $dbh->do("UPDATE defaults SET version = " . $dbh->quote($version)); + if (ref($version_or_control) eq "HASH") { + $dbh->do("INSERT INTO schema_info (tag, login) VALUES (" . + $dbh->quote($version_or_control->{"tag"}) . ", " . + $dbh->quote($form->{"login"}) . ")"); + } elsif ($version_or_control) { + $dbh->do("UPDATE defaults SET version = " . + $dbh->quote($version_or_control)); } $dbh->commit(); @@ -1070,10 +1094,10 @@ sub config_vars { my @conf = qw(acs address admin businessnumber charset company countrycode currency dateformat dbconnect dbdriver dbhost dbport dboptions - dbname dbuser dbpasswd email fax name numberformat in_numberformat password + dbname dbuser dbpasswd email fax name numberformat password printer role sid signature stylesheet tel templates vclimit angebote bestellungen rechnungen anfragen lieferantenbestellungen einkaufsrechnungen taxnumber co_ustid duns menustyle - template_format copies); + template_format default_media default_printer_id copies show_form_details); $main::lxdebug->leave_sub();