X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/c3cee60334aa81dfb51e5ffe45635d59450c3409..2584d83bc80331cd77f03d0588205fa465cdb13a:/bin/mozilla/admin.pl diff --git a/bin/mozilla/admin.pl b/bin/mozilla/admin.pl index ef985f40c..f3edde8e8 100644 --- a/bin/mozilla/admin.pl +++ b/bin/mozilla/admin.pl @@ -40,6 +40,8 @@ use CGI; use SL::Form; use SL::User; use SL::Common; +use SL::Inifile; +use SL::DBUpgrade2; require "bin/mozilla/common.pl"; @@ -156,16 +158,13 @@ sub add_user { . $locale->text('Administration') . " / " . $locale->text('Add User'); - $form->{Oracle_sid} = $sid; - $form->{Oracle_dbport} = '1521'; - $form->{Oracle_dbhost} = `hostname`; - my $myconfig = { "vclimit" => 200, "countrycode" => "de", "numberformat" => "1000,00", "dateformat" => "dd.mm.yy", "stylesheet" => "lx-office-erp.css", + "menustyle" => "v3", }; edit_user_form($myconfig); @@ -249,8 +248,6 @@ sub edit_user_form { map { $form->{"myc_${_}"} = $myconfig->{$_} } keys %{ $myconfig }; - map { $form->{"Pg_${_}"} = $myconfig->{$_} } qw(dbhost dbport dbname dbuser dbpasswd); - # access control my @acsorder = (); my %acs = (); @@ -314,9 +311,7 @@ sub edit_user_form { sub save { - # no driver checked - $form->error($locale->text('Database Driver not checked!')) - unless $form->{dbdriver}; + $form->{dbdriver} = 'Pg'; # no spaces allowed in login name ($form->{login}) = split / /, $form->{login}; @@ -363,29 +358,8 @@ sub save { } $form->{acs} = join ";", @acs; - # check which database was filled in - if ($form->{dbdriver} eq 'Oracle') { - $form->{sid} = $form->{Oracle_sid},; - $form->{dbhost} = $form->{Oracle_dbhost},; - $form->{dbport} = $form->{Oracle_dbport}; - $form->{dbpasswd} = $form->{Oracle_dbpasswd}; - $form->{dbuser} = $form->{Oracle_dbuser}; - $form->{dbname} = $form->{Oracle_dbuser}; - - $form->isblank("dbhost", $locale->text('Hostname missing!')); - $form->isblank("dbport", $locale->text('Port missing!')); - $form->isblank("dbuser", $locale->text('Dataset missing!')); - } - if ($form->{dbdriver} eq 'Pg') { - $form->{dbhost} = $form->{Pg_dbhost}; - $form->{dbport} = $form->{Pg_dbport}; - $form->{dbpasswd} = $form->{Pg_dbpasswd}; - $form->{dbuser} = $form->{Pg_dbuser}; - $form->{dbname} = $form->{Pg_dbname}; - - $form->isblank("dbname", $locale->text('Dataset missing!')); - $form->isblank("dbuser", $locale->text('Database User missing!')); - } + $form->isblank("dbname", $locale->text('Dataset missing!')); + $form->isblank("dbuser", $locale->text('Database User missing!')); foreach $item (keys %{$form}) { $myconfig->{$item} = $form->{$item}; @@ -477,81 +451,28 @@ sub save { } sub delete { - - $form->{templates} = - ($form->{templates}) - ? "$templates/$form->{templates}" - : "$templates/$form->{login}"; - $form->error($locale->text('File locked!')) if (-f ${memberfile} . LCK); open(FH, ">${memberfile}.LCK") or $form->error("${memberfile}.LCK : $!"); close(FH); - open(CONF, "+<$memberfile") or $form->error("$memberfile : $!"); - - @config = ; - - seek(CONF, 0, 0); - truncate(CONF, 0); - - while ($line = shift @config) { - - if ($line =~ /^\[/) { - last if ($line =~ /\[$form->{login}\]/); - $login = login_name($line); - } - - if ($line =~ /^templates=/) { - $user{$login} = get_value($line); - } - - print CONF $line; - } - - # remove everything up to next login or EOF - # and save template variable - while ($line = shift @config) { - if ($line =~ /^templates=/) { - $templatedir = get_value($line); - } - last if ($line =~ /^\[/); - } - - # this one is either the next login or EOF - print CONF $line; - - $login = login_name($line); - - while ($line = shift @config) { - if ($line =~ /^\[/) { - $login = login_name($line); - } - - if ($line =~ /^templates=/) { - $user{$login} = get_value($line); - } - - print CONF $line; - } - - close(CONF); + my $members = Inifile->new($memberfile); + my $templates = $members->{$form->{login}}->{templates}; + delete $members->{$form->{login}}; + $members->write(); unlink "${memberfile}.LCK"; - # scan %user for $templatedir - foreach $login (keys %user) { - last if ($found = ($templatedir eq $user{$login})); - } - - # if found keep directory otherwise delete - if (!$found) { + if ($templates) { + my $templates_in_use = 0; + foreach $login (keys %{ $members }) { + next if $login =~ m/^[A-Z]+$/; + next if $members->{$login}->{templates} ne $templates; + $templates_in_use = 1; + last; + } - # delete it if there is a template directory - $dir = "$form->{templates}"; - if (-d "$dir") { - unlink <$dir/*.html>; - unlink <$dir/*.tex>; - unlink <$dir/*.sty>; - rmdir "$dir"; + if (!$templates_in_use && -d $templates) { + unlink <$templates/*>; + rmdir $templates; } } @@ -633,136 +554,16 @@ sub pg_database_administration { } -sub oracle_database_administration { - - $form->{dbdriver} = 'Oracle'; - dbselect_source(); - -} - -sub dbdriver_defaults { - - # load some defaults for the selected driver - %driverdefaults = ( - 'Pg' => { dbport => '5432', - dbuser => 'postgres', - dbdefault => 'template1', - dbhost => 'localhost', - connectstring => $locale->text('Connect to') - }, - 'Oracle' => { dbport => '1521', - dbuser => 'oralin', - dbdefault => $sid, - dbhost => `hostname`, - connectstring => 'SID' - }); - - map { $form->{$_} = $driverdefaults{ $form->{dbdriver} }{$_} } - keys %{ $driverdefaults{Pg} }; - -} - sub dbselect_source { + $form->{dbport} = '5432'; + $form->{dbuser} = 'postgres'; + $form->{dbdefault} = 'template1'; + $form->{dbhost} = 'localhost'; - dbdriver_defaults(); - - $msg{Pg} = - $locale->text( - 'Leave host and port field empty unless you want to make a remote connection.' - ); - $msg{Oracle} = - $locale->text( - 'You must enter a host and port for local and remote connections!'); - - $form->{title} = - "Lx-Office ERP / " . $locale->text('Database Administration'); - - $form->header; - - print qq| - - - -
-

$form->{title}

- -
{script}> - - - -
- - - - - - - -{dbdriver}> - - -
| . $locale->text('Database') . qq|
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
| . $locale->text('Host') . qq|{dbhost}>| . $locale->text('Port') . qq|{dbport}>
| . $locale->text('User') . qq|| . $locale->text('Password') . qq|
$form->{connectstring}{dbdefault}>
- -
- - -{rpw}> - -
- -|; -# Vorübergehend Deaktiviert -# -print qq| - - - -
- -

| - . $locale->text( - 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' - ) - - . qq| -
$msg{$form->{dbdriver}} - - - - -|; + $form->{title} = "Lx-Office ERP / " . $locale->text('Database Administration'); + $form->header(); + print $form->parse_html_template("admin/dbadmin"); } sub continue { @@ -770,118 +571,52 @@ sub continue { } sub update_dataset { - - %needsupdate = User->dbneedsupdate(\%$form); - $form->{title} = "Lx-Office ERP " . $locale->text('Database Administration') . " / " . $locale->text('Update Dataset'); - $form->header; - - print qq| - + my @need_updates = User->dbneedsupdate($form); + $form->{NEED_UPDATES} = \@need_updates; + $form->{ALL_UPDATED} = !scalar @need_updates; + $form->header(); + print $form->parse_html_template("admin/update_dataset"); +} -

-

$form->{title}

-|; - my $field_id = 0; - foreach $key (sort keys %needsupdate) { - if ($needsupdate{$key} ne $form->{dbversion}) { - $upd .= qq| $key\n|; - $form->{dbupdate} .= "db$key "; - $field_id++; - } - } - - chop $form->{dbupdate}; - - if ($form->{dbupdate}) { - - print qq| - -{script}> - - - - - - - - - - - - - - - - -
| . $locale->text('The following Datasets need to be updated') . qq|
- -$upd - -
+sub dbupdate { + $form->{stylesheet} = "lx-office-erp.css"; + $form->{title} = $locale->text("Dataset upgrade"); + $form->header(); - + my $rowcount = $form->{rowcount} * 1; + my @update_rows = grep { $form->{"update_$_"} } (1 .. $rowcount); + $form->{NOTHING_TO_DO} = !scalar @update_rows; + my $saved_form = save_form(); - + $| = 1; -{rpw}> + print $form->parse_html_template("admin/dbupgrade_all_header"); - + foreach my $i (@update_rows) { + restore_form($saved_form); -
+ map { $form->{$_} = $form->{"${_}_${i}"} } qw(dbname dbdriver dbhost dbport dbuser dbpasswd); -
- + my $controls = parse_dbupdate_controls($form, $form->{dbdriver}); -
- -|; + print $form->parse_html_template("admin/dbupgrade_header"); - } else { + $form->{dbupdate} = $form->{dbname}; + $form->{$form->{dbname}} = 1; - print $locale->text('All Datasets up to date!'); + User->dbupdate($form); + User->dbupdate2($form, $controls); + print $form->parse_html_template("admin/dbupgrade_footer"); } - print qq| - - - -|; - -} - -sub dbupdate { - $form->{"stylesheet"} = "lx-office-erp.css"; - $form->{"title"} = $main::locale->text("Dataset upgrade"); - $form->header(); - my $dbname = - join(" ", - map({ s/\s//g; s/^db//; $_; } - grep({ $form->{$_} } - split(/\s+/, $form->{"dbupdate"})))); - print($form->parse_html_template("dbupgrade/header", - { "dbname" => $dbname })); - - User->dbupdate(\%$form); - - print qq| -
- -| . $locale->text('Dataset updated!') . qq| - -
- -| . $locale->text("Continue") . qq||; - + print $form->parse_html_template("admin/dbupgrade_all_done"); } sub create_dataset {