X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Fadmin.pl;h=3b37dab5ea5800b456fd19e9c63ee8542fc5f3dc;hb=9c2d49bb4dae241b4290afaeeb762d9c0e584301;hp=9856c29550de158ee6ae7626107498ea81e35101;hpb=4dbb09950c9f5596646537c12d991c99086fe7c1;p=kivitendo-erp.git diff --git a/bin/mozilla/admin.pl b/bin/mozilla/admin.pl index 9856c2955..3b37dab5e 100644 --- a/bin/mozilla/admin.pl +++ b/bin/mozilla/admin.pl @@ -37,46 +37,46 @@ $menufile = "menu.ini"; use SL::Form; use SL::User; - $form = new Form; +$form->{"root"} = "root login"; $locale = new Locale $language, "admin"; - + eval { require DBI; }; $form->error($locale->text('DBI not installed!')) if ($@); - # customization if (-f "$form->{path}/custom_$form->{script}") { eval { require "$form->{path}/custom_$form->{script}"; }; $form->error($@) if ($@); } - $form->{stylesheet} = "lx-office-erp.css"; -$form->{favicon} = "favicon.ico"; +$form->{favicon} = "favicon.ico"; if ($form->{action}) { + $subroutine = $locale->findsub($form->{action}); - + if ($subroutine eq 'login') { if ($form->{rpw}) { $form->{rpw} = crypt $form->{rpw}, "ro"; } } - + &check_password; - + &$subroutine; - + } else { # if there are no drivers bail out - $form->error($locale->text('No Database Drivers available!')) unless (User->dbdrivers); + $form->error($locale->text('No Database Drivers available!')) + unless (User->dbdrivers); # create memberfile - if (! -f $memberfile) { + if (!-f $memberfile) { open(FH, ">$memberfile") or $form->error("$memberfile : $!"); print FH qq|# SQL-Ledger Accounting members @@ -92,15 +92,16 @@ password= } 1; -# end +# end sub adminlogin { - $form->{title} = qq|Lx-Office ERP $form->{version} |.$locale->text('Administration'); + $form->{title} = + qq|Lx-Office ERP $form->{version} | . $locale->text('Administration'); $form->header; - + print qq| @@ -108,25 +109,30 @@ sub adminlogin {
-

|.$locale->text('Version').qq| $form->{version}

|.$locale->text('Administration').qq|

+

| + . $locale->text('Version') + . qq| $form->{version}

| + . $locale->text('Administration') + . qq|

- + - + -{path}>
|.$locale->text('Password').qq|| . $locale->text('Password') . qq|
-Lx-Office |.$locale->text('website').qq| +Lx-Office | + . $locale->text('website') . qq|
@@ -136,22 +142,20 @@ sub adminlogin { } - - - sub login { &list_users; } - - sub add_user { - - $form->{title} = "Lx-Office ERP ".$locale->text('Administration')." / ".$locale->text('Add User'); - $form->{Oracle_sid} = $sid; + $form->{title} = + "Lx-Office ERP " + . $locale->text('Administration') . " / " + . $locale->text('Add User'); + + $form->{Oracle_sid} = $sid; $form->{Oracle_dbport} = '1521'; $form->{Oracle_dbhost} = `hostname`; @@ -159,17 +163,22 @@ sub add_user { $myconfig->{stylesheet} = "lx-office-erp.css"; } $myconfig->{vclimit} = 200; - + + $myconfig->{"countrycode"} = "de"; + $myconfig->{"numberformat"} = "1000,00"; + $myconfig->{"dateformat"} = "dd.mm.yy"; + &form_header; &form_footer; - -} - +} sub edit { - $form->{title} = "Lx-Office ERP ".$locale->text('Administration')." / ".$locale->text('Edit User'); + $form->{title} = + "Lx-Office ERP " + . $locale->text('Administration') . " / " + . $locale->text('Edit User'); $form->{edit} = 1; &form_header; @@ -177,22 +186,23 @@ sub edit { } - sub form_footer { if ($form->{edit}) { - $delete = qq| + $delete = + qq| |; } print qq| - - + {path}> {rpw}> - + $delete @@ -203,7 +213,6 @@ $delete } - sub list_users { $form->error($locale->text('File locked!')) if (-f "${memberfile}.LCK"); @@ -211,49 +220,52 @@ sub list_users { open(FH, "$memberfile") or $form->error("$memberfile : $!"); $nologin = qq| -|; +|; if (-e "$userspath/nologin") { $nologin = qq| -|; +|; } - while () { chop; - + if (/^\[.*\]/) { $login = $_; $login =~ s/(\[|\])//g; } if (/^(name=|company=|templates=|dbuser=|dbdriver=|dbname=|dbhost=)/) { - chop ($var = $&); - ($null, $member{$login}{$var}) = split /=/, $_, 2; + chop($var = $&); + ($null, $member{$login}{$var}) = split(/=/, $_, 2); } } - + close(FH); -# type=submit $locale->text('Pg Database Administration') -# type=submit $locale->text('Oracle Database Administration') + # type=submit $locale->text('Pg Database Administration') + # type=submit $locale->text('Oracle Database Administration') foreach $item (User->dbdrivers) { - $dbdrivers .= qq||; + $dbdrivers .= + qq||; } - - $column_header{login} = qq||.$locale->text('Login').qq||; - $column_header{name} = qq||.$locale->text('Name').qq||; - $column_header{company} = qq||.$locale->text('Company').qq||; - $column_header{dbdriver} = qq||.$locale->text('Driver').qq||; - $column_header{dbhost} = qq||.$locale->text('Host').qq||; - $column_header{dataset} = qq||.$locale->text('Dataset').qq||; - $column_header{templates} = qq||.$locale->text('Templates').qq||; + $column_header{login} = qq|| . $locale->text('Login') . qq||; + $column_header{name} = qq|| . $locale->text('Name') . qq||; + $column_header{company} = qq|| . $locale->text('Company') . qq||; + $column_header{dbdriver} = qq|| . $locale->text('Driver') . qq||; + $column_header{dbhost} = qq|| . $locale->text('Host') . qq||; + $column_header{dataset} = qq|| . $locale->text('Dataset') . qq||; + $column_header{templates} = + qq|| . $locale->text('Templates') . qq||; @column_index = qw(login name company dbdriver dbhost dataset templates); - $form->{title} = "Lx-Office ERP ".$locale->text('Administration'); + $form->{title} = "Lx-Office ERP " . $locale->text('Administration'); $form->header; @@ -274,39 +286,42 @@ sub list_users { |; map { print "$column_header{$_}\n" } @column_index; - + print qq| |; -foreach $key (sort keys %member) { - $href = "$script?action=edit&login=$key&path=$form->{path}&root=$form->{root}&rpw=$form->{rpw}"; - $href =~ s/ /%20/g; - - $member{$key}{templates} =~ s/^$templates\///; - $member{$key}{dbhost} = $locale->text('localhost') unless $member{$key}{dbhost}; - $member{$key}{dbname} = $member{$key}{dbuser} if ($member{$key}{dbdriver} eq 'Oracle'); - - $column_data{login} = qq|$key|; - $column_data{name} = qq|$member{$key}{name}|; - $column_data{company} = qq|$member{$key}{company}|; - $column_data{dbdriver} = qq|$member{$key}{dbdriver}|; - $column_data{dbhost} = qq|$member{$key}{dbhost}|; - $column_data{dataset} = qq|$member{$key}{dbname}|; - $column_data{templates} = qq|$member{$key}{templates}|; - - $i++; $i %= 2; - print qq| - |; + foreach $key (sort keys %member) { + $href = + "$script?action=edit&login=$key&path=$form->{path}&rpw=$form->{rpw}"; + $href =~ s/ /%20/g; + + $member{$key}{templates} =~ s/^$templates\///; + $member{$key}{dbhost} = $locale->text('localhost') + unless $member{$key}{dbhost}; + $member{$key}{dbname} = $member{$key}{dbuser} + if ($member{$key}{dbdriver} eq 'Oracle'); + + $column_data{login} = qq|$key|; + $column_data{name} = qq|$member{$key}{name}|; + $column_data{company} = qq|$member{$key}{company}|; + $column_data{dbdriver} = qq|$member{$key}{dbdriver}|; + $column_data{dbhost} = qq|$member{$key}{dbhost}|; + $column_data{dataset} = qq|$member{$key}{dbname}|; + $column_data{templates} = qq|$member{$key}{templates}|; + + $i++; + $i %= 2; + print qq| + |; - map { print "$column_data{$_}\n" } @column_index; + map { print "$column_data{$_}\n" } @column_index; - print qq| + print qq| |; -} - + } -print qq| + print qq| @@ -317,19 +332,24 @@ print qq| {path}> {rpw}> - -
- +
+ $dbdrivers $nologin -|.$locale->text('Click on login name to edit!').qq| +| . $locale->text('Click on login name to edit!') . qq|
-|.$locale->text('To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.').qq| +| + . $locale->text( + 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' + ) + . qq|

@@ -337,20 +357,21 @@ $nologin - + - + |; - # list section for database drivers - foreach $item (User->dbdrivers) { - + # list section for database drivers + foreach $item (User->dbdrivers) { + print qq| - - - + + + + |; if ($item eq 'Pg') { + print qq| - - - - + + + + - - - - + + + + |; } @@ -610,21 +666,20 @@ sub form_header { print qq| - + - + - - - + + + |; } - - + print qq| - {dbpasswd}> +
Lx-Office ERP |.$locale->text('Login').qq|Lx-Office ERP | . $locale->text('Login') . qq|
- + - + - + {path}>
|.$locale->text('Name').qq|| . $locale->text('Name') . qq|  
|.$locale->text('Password').qq|| . $locale->text('Password') . qq|
@@ -368,17 +389,16 @@ $nologin } - - sub form_header { # if there is a login, get user if ($form->{login}) { + # get user $myconfig = new User "$memberfile", "$form->{login}"; $myconfig->{signature} =~ s/\\n/\r\n/g; - $myconfig->{address} =~ s/\\n/\r\n/g; + $myconfig->{address} =~ s/\\n/\r\n/g; # strip basedir from templates directory $myconfig->{templates} =~ s/^$templates\///; @@ -386,39 +406,52 @@ sub form_header { # $myconfig->{dbpasswd} = unpack 'u', $myconfig->{dbpasswd}; } - foreach $item (qw(mm-dd-yy mm/dd/yy dd-mm-yy dd/mm/yy dd.mm.yy yyyy-mm-dd)) { - $dateformat .= ($item eq $myconfig->{dateformat}) ? "
- - + + - - - {password}> + + + - - + + - + - + - + - + - + - + - - + + - - + + - +
|.$locale->text('Login').qq|| . $locale->text('Login') . qq|
|.$locale->text('Password').qq|{password}>| . $locale->text('Password') . qq|
|.$locale->text('Name').qq|| . $locale->text('Name') . qq|
|.$locale->text('E-mail').qq|| . $locale->text('E-mail') . qq|
|.$locale->text('Signature').qq|| . $locale->text('Signature') . qq|
|.$locale->text('Phone').qq|| . $locale->text('Phone') . qq|
|.$locale->text('Fax').qq|| . $locale->text('Fax') . qq|
|.$locale->text('Company').qq|| . $locale->text('Company') . qq|
|.$locale->text('Address').qq|| . $locale->text('Address') . qq|
|.$locale->text('Steuernummer').qq|| . $locale->text('Tax number') . qq|
|.$locale->text('Ust-IDNr').qq|| . $locale->text('Ust-IDNr') . qq|
|.$locale->text('DUNS-Nr').qq|| . $locale->text('DUNS-Nr') . qq|
@@ -520,56 +564,66 @@ sub form_header {
- + - + - + - + - + - + - + - + - + - + + + + + {templates}>
|.$locale->text('Date Format').qq|| . $locale->text('Date Format') . qq|
|.$locale->text('Number Format').qq|| . $locale->text('Number Format') . qq|
|.$locale->text('Dropdown Limit').qq|| . $locale->text('Dropdown Limit') . qq|
|.$locale->text('Language').qq|| . $locale->text('Language') . qq|
|.$locale->text('Character Set').qq|| . $locale->text('Character Set') . qq|
|.$locale->text('Stylesheet').qq|| . $locale->text('Stylesheet') . qq|
|.$locale->text('Printer').qq|| . $locale->text('Printer') . qq|
|.$locale->text('Use Templates').qq|| . $locale->text('Use Templates') . qq|
|.$locale->text('New Templates').qq|| . $locale->text('New Templates') . qq|
|.$locale->text('Setup Templates').qq|| . $locale->text('Setup Templates') . qq|
| . $locale->text('Setup Menu') . qq| | . + $locale->text("Top (CSS)") . qq| +  | . + $locale->text("Top (Javascript)") . qq| +  | . + $locale->text("Old (on the side)") . qq| +
|.$locale->text('Database').qq|| . $locale->text('Database') . qq|
@@ -578,30 +632,32 @@ sub form_header { $checked = ""; if ($myconfig->{dbdriver} eq $item) { - map { $form->{"${item}_$_"} = $myconfig->{$_} } qw(dbhost dbport dbuser dbpasswd dbname sid); + map { $form->{"${item}_$_"} = $myconfig->{$_} } + qw(dbhost dbport dbuser dbpasswd dbname sid); $checked = "checked"; } print qq| - |.$locale->text('Driver').qq| $item|.$locale->text('Host').qq|{"${item}_dbhost"}>| . $locale->text('Driver') . qq| $item| . $locale->text('Host') . qq|
|.$locale->text('Dataset').qq|{Pg_dbname}>|.$locale->text('Port').qq|{Pg_dbport}>| . $locale->text('Dataset') . qq|| . $locale->text('Port') . qq|
|.$locale->text('User').qq|{"${item}_dbuser"}>|.$locale->text('Password').qq|{"${item}_dbpasswd"}>| . $locale->text('User') . qq|| . $locale->text('Password') . qq|
SID {Oracle_sid}>|.$locale->text('Port').qq|| . $locale->text('Port') . qq| {Oracle_dbport}>
|.$locale->text('Dataset').qq|| . $locale->text('Dataset') . qq| {"${item}_dbuser"}>|.$locale->text('Password').qq|{"${item}_dbpasswd"}>| . $locale->text('Password') . qq|
@@ -635,13 +690,13 @@ sub form_header { } - # access control open(FH, $menufile) or $form->error("$menufile : $!"); + # scan for first menu level @a = ; close(FH); - + if (open(FH, "custom_$menufile")) { push @a, ; } @@ -657,7 +712,7 @@ sub form_header { if ($item =~ /--/) { ($level, $menuitem) = split /--/, $item, 2; } else { - $level = $item; + $level = $item; $menuitem = $item; push @acsorder, $item; } @@ -665,46 +720,48 @@ sub form_header { push @{ $acs{$level} }, $menuitem; } - - %role = ( 'admin' => $locale->text('Administrator'), - 'user' => $locale->text('User'), - 'manager' => $locale->text('Manager'), - 'supervisor' => $locale->text('Supervisor') - ); - + + %role = ('admin' => $locale->text('Administrator'), + 'user' => $locale->text('User'), + 'manager' => $locale->text('Manager'), + 'supervisor' => $locale->text('Supervisor')); + $selectrole = ""; foreach $item (qw(user supervisor manager admin)) { - $selectrole .= ($myconfig->{role} eq $item) ? "


- |.$locale->text('WEBDAV-Zugriff').qq| + | . $locale->text('WEBDAV-Zugriff') . qq| - + - + -
 Angebot Bestellung Bestellung  Rechnung
 Angebot Lieferantenbestellung Lieferantenbestellung  Einkaufsrechnung
+
|; -} -print qq| + } + print qq| |; } - sub save { # no driver checked - $form->error($locale->text('Database Driver not checked!')) unless $form->{dbdriver}; + $form->error($locale->text('Database Driver not checked!')) + unless $form->{dbdriver}; # no spaces allowed in login name ($form->{login}) = split / /, $form->{login}; $form->isblank("login", $locale->text('Login name missing!')); - + # check for duplicates if (!$form->{edit}) { $temp = new User "$memberfile", "$form->{login}"; - + if ($temp->{login}) { - $form->error("$form->{login} ".$locale->text('is already a member!')); + $form->error("$form->{login} " . $locale->text('is already a member!')); } } - + # no spaces allowed in directories ($form->{newtemplates}) = split / /, $form->{newtemplates}; - + if ($form->{newtemplates}) { $form->{templates} = $form->{newtemplates}; } else { - $form->{templates} = ($form->{usetemplates}) ? $form->{usetemplates} : $form->{login}; + $form->{templates} = + ($form->{usetemplates}) ? $form->{usetemplates} : $form->{login}; } - + # is there a basedir - if (! -d "$templates") { - $form->error($locale->text('Directory').": $templates ".$locale->text('does not exist')); + if (!-d "$templates") { + $form->error( $locale->text('Directory') + . ": $templates " + . $locale->text('does not exist')); } # add base directory to $form->{templates} $form->{templates} = "$templates/$form->{templates}"; - $myconfig = new User "$memberfile", "$form->{login}"; # redo acs variable and delete all the acs codes - @acs = split /;/, $form->{acs}; + @acs = split(/;/, $form->{acs}); $form->{acs} = ""; foreach $item (@acs) { $item = $form->escape($item, 1); if (!$form->{$item}) { - $form->{acs} .= $form->unescape($form->unescape($item)).";"; + $form->{acs} .= $form->unescape($form->unescape($item)) . ";"; } delete $form->{$item}; } # 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->{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->{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->{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->{dbuser} = $form->{Pg_dbuser}; + $form->{dbname} = $form->{Pg_dbname}; + $form->isblank("dbname", $locale->text('Dataset missing!')); $form->isblank("dbuser", $locale->text('Database User missing!')); } if ($webdav) { - @webdavdirs = qw(angebote bestellungen rechnungen anfragen lieferantenbestellungen einkaufsrechnungen); + @webdavdirs = + qw(angebote bestellungen rechnungen anfragen lieferantenbestellungen einkaufsrechnungen); foreach $directory (@webdavdirs) { - if ($form->{$directory}) { - $form->{$directory} = $form->{$directory}; - } else { - $form->{$directory} = 0; - } + if ($form->{$directory}) { + $form->{$directory} = $form->{$directory}; + } else { + $form->{$directory} = 0; + } } } - + foreach $item (keys %{$form}) { $myconfig->{$item} = $form->{$item}; } @@ -873,104 +934,108 @@ sub save { if ($form->{userstylesheet}) { $myconfig->{stylesheet} = $form->{userstylesheet}; } - + $myconfig->save_member($memberfile, $userspath); - + if ($webdav) { - @webdavdirs = qw(angebote bestellungen rechnungen anfragen lieferantenbestellungen einkaufsrechnungen); + @webdavdirs = + qw(angebote bestellungen rechnungen anfragen lieferantenbestellungen einkaufsrechnungen); foreach $directory (@webdavdirs) { - $file = "webdav/".$directory."/webdav-user"; + $file = "webdav/" . $directory . "/webdav-user"; if ($form->{$directory}) { - if (open (HTACCESS, "$file")) { + if (open(HTACCESS, "$file")) { while () { - ($login,$password) = split(/:/, $_); + ($login, $password) = split(/:/, $_); if ($login ne $form->{login}) { $newfile .= $_; } } - close (HTACCESS); + close(HTACCESS); } - open (HTACCESS, "> $file") or die "cannot open $file $!\n"; - $newfile .= $myconfig->{login}.":".$myconfig->{password}."\n"; - print (HTACCESS $newfile); - close (HTACCESS); + open(HTACCESS, "> $file") or die "cannot open $file $!\n"; + $newfile .= $myconfig->{login} . ":" . $myconfig->{password} . "\n"; + print(HTACCESS $newfile); + close(HTACCESS); } else { $form->{$directory} = 0; - if (open (HTACCESS, "$file")) { + if (open(HTACCESS, "$file")) { while () { - ($login,$password) = split(/:/, $_); + ($login, $password) = split(/:/, $_); if ($login ne $form->{login}) { $newfile .= $_; } } - close (HTACCESS); + close(HTACCESS); } - open (HTACCESS, "> $file") or die "cannot open $file $!\n"; - print (HTACCESS $newfile); - close (HTACCESS); + open(HTACCESS, "> $file") or die "cannot open $file $!\n"; + print(HTACCESS $newfile); + close(HTACCESS); } } - } + } # create user template directory and copy master files - if (! -d "$form->{templates}") { + if (!-d "$form->{templates}") { umask(002); - + if (mkdir "$form->{templates}", oct("771")) { - + umask(007); - + # copy templates to the directory - opendir TEMPLATEDIR, "$templates/." or $form-error("$templates : $!"); - @templates = grep /$form->{mastertemplates}.*?\.(html|tex)$/, readdir TEMPLATEDIR; + opendir TEMPLATEDIR, "$templates/." or $form - error("$templates : $!"); + @templates = grep /$form->{mastertemplates}.*?\.(html|tex|sty|xml|txb)$/, + readdir TEMPLATEDIR; closedir TEMPLATEDIR; foreach $file (@templates) { - open(TEMP, "$templates/$file") or $form->error("$templates/$file : $!"); - - $file =~ s/$form->{mastertemplates}-//; - open(NEW, ">$form->{templates}/$file") or $form->error("$form->{templates}/$file : $!"); - - while ($line = ) { - print NEW $line; - } - close(TEMP); - close(NEW); + open(TEMP, "$templates/$file") + or $form->error("$templates/$file : $!"); + + $file =~ s/$form->{mastertemplates}-//; + open(NEW, ">$form->{templates}/$file") + or $form->error("$form->{templates}/$file : $!"); + + while ($line = ) { + print NEW $line; + } + close(TEMP); + close(NEW); } } else { $form->error("$!: $form->{templates}"); } } - - $form->redirect($locale->text('User saved!')); - -} +} sub delete { - $form->{templates} = ($form->{templates}) ? "$templates/$form->{templates}" : "$templates/$form->{login}"; - - $form->error($locale->text('File locked!')) if (-f ${memberfile}.LCK); + $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); } @@ -991,17 +1056,16 @@ sub delete { 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; } @@ -1015,71 +1079,80 @@ sub delete { # if found keep directory otherwise delete if (!$found) { + # 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"; } } - + # delete config file for user unlink "$userspath/$form->{login}.conf"; - + $form->redirect($locale->text('User deleted!')); - -} +} sub login_name { my $login = shift; - + $login =~ s/\[\]//g; return ($login) ? $login : undef; - -} - +} sub get_value { my $line = shift; - + my ($null, $value) = split(/=/, $line, 2); # remove comments $value =~ s/\s#.*//g; - + # remove any trailing whitespace $value =~ s/^\s*(.*?)\s*$/$1/; $value; } - - sub change_admin_password { - $form->{title} = qq|Lx-Office ERP |.$locale->text('Administration')." / ".$locale->text('Change Admin Password'); - + $form->{title} = + qq|Lx-Office ERP | + . $locale->text('Administration') . " / " + . $locale->text('Change Admin Password'); + $form->header; print qq| -

|.$locale->text('Change Admin Password').qq|

+

| . $locale->text('Change Admin Password') . qq|

{script}> -|.$locale->text('Password').qq| + + + + + + + + + +
| . $locale->text('Password') . qq|
| . $locale->text('Repeat the password') . qq|
- {path}> {rpw}>

- +

@@ -1089,34 +1162,47 @@ sub change_admin_password { } - sub change_password { + if ($form->{"password"} ne $form->{"password_again"}) { + $form->{title} = + qq|Lx-Office ERP | + . $locale->text('Administration') . " / " + . $locale->text('Change Admin Password'); + + $form->header; + + print qq| + + + +

| . $locale->text('Change Admin Password') . qq|

+ +

| . $locale->text("The passwords do not match.") . qq|
+|; + return; + } $root->{password} = $form->{password}; - + $root->{'root login'} = 1; $root->save_member($memberfile); - $form->{callback} = "$form->{script}?action=list_users&path=$form->{path}&root=$form->{root}&rpw=$root->{password}"; + $form->{callback} = + "$form->{script}?action=list_users&path=$form->{path}&rpw=$root->{password}"; $form->redirect($locale->text('Password changed!')); } - sub check_password { - $root = new User "$memberfile", $form->{root}; - if ($root->{password}) { - if ($root->{password} ne $form->{rpw}) { - $form->error($locale->text('Incorrect Password!')); - } + if (!defined($root->{password}) || ($root->{password} ne $form->{rpw})) { + $form->error($locale->text('Incorrect Password!')); } } - sub pg_database_administration { $form->{dbdriver} = 'Pg'; @@ -1124,47 +1210,49 @@ 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} }; - + %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 { &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!'); - + $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->{title} = + "Lx-Office ERP / " . $locale->text('Database Administration'); $form->header; @@ -1183,7 +1271,7 @@ sub dbselect_source { - + {dbdriver}> @@ -1193,22 +1281,22 @@ sub dbselect_source { - + - + - - - - + + + + - + @@ -1221,25 +1309,31 @@ sub dbselect_source {
|.$locale->text('Database').qq|| . $locale->text('Database') . qq|
|.$locale->text('Host').qq|| . $locale->text('Host') . qq| {dbhost}>|.$locale->text('Port').qq|| . $locale->text('Port') . qq| {dbport}>
|.$locale->text('User').qq|{dbuser}>|.$locale->text('Password').qq|| . $locale->text('User') . qq|| . $locale->text('Password') . qq|
$form->{connectstring}
- - + {path}> {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!') +

| + . $locale->text( + 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' + ) -.qq| + . qq|
$msg{$form->{dbdriver}} @@ -1249,20 +1343,21 @@ sub dbselect_source { } - sub continue { &{ $form->{nextsub} }; } - sub update_dataset { %needsupdate = User->dbneedsupdate(\%$form); - $form->{title} = "Lx-Office ERP ".$locale->text('Database Administration')." / ".$locale->text('Update Dataset'); - + $form->{title} = + "Lx-Office ERP " + . $locale->text('Database Administration') . " / " + . $locale->text('Update Dataset'); + $form->header; print qq| @@ -1272,33 +1367,32 @@ sub update_dataset {

$form->{title}

|; - - + my $field_id = 0; foreach $key (sort keys %needsupdate) { if ($needsupdate{$key} ne $form->{dbversion}) { - $upd .= qq| $key\n|; + $upd .= qq| $key\n|; $form->{dbupdate} .= "db$key "; + $field_id++; } } chop $form->{dbupdate}; - if ($form->{dbupdate}) { print qq| {script}> -{dbdriver}> -{dbhost}> -{dbport}> -{dbuser}> -{dbpasswd}> -{dbdefault}> + + + + + + - +
|.$locale->text('The following Datasets need to be updated').qq|| . $locale->text('The following Datasets need to be updated') . qq|
@@ -1312,9 +1406,8 @@ $upd - + - {path}> {rpw}> @@ -1323,7 +1416,8 @@ $upd

- +
@@ -1335,7 +1429,7 @@ $upd print $locale->text('All Datasets up to date!'); } - + print qq| @@ -1344,15 +1438,32 @@ $upd } - 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); - $form->redirect($locale->text('Dataset updated!')); - -} + print qq| +
+ +| . $locale->text('Dataset updated!') . qq| + +
+ +| . $locale->text("Continue") . qq||; +} sub create_dataset { @@ -1360,34 +1471,39 @@ sub create_dataset { $dbsources .= "[$item] "; } - opendir SQLDIR, "sql/." or $form-error($!); - foreach $item (sort grep /-chart\.sql/, readdir SQLDIR) { + opendir SQLDIR, "sql/." or $form - error($!); + foreach $item (sort grep /-chart\.sql\z/, readdir SQLDIR) { next if ($item eq 'Default-chart.sql'); $item =~ s/-chart\.sql//; - push @charts, qq|  $item|; + push @charts, + qq|  $item|; } closedir SQLDIR; $selectencoding = qq|