X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Fadmin.pl;h=118712531c81cf680a87b38a5a2740de733cda21;hb=024df846ffcf9d315f068a50f3fac8a992791902;hp=9856c29550de158ee6ae7626107498ea81e35101;hpb=4dbb09950c9f5596646537c12d991c99086fe7c1;p=kivitendo-erp.git diff --git a/bin/mozilla/admin.pl b/bin/mozilla/admin.pl index 9856c2955..118712531 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 = $&); + 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,19 +651,18 @@ 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,26 +406,37 @@ 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|| . $locale->text('Password') . qq| {password}>
|.$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('Steuernummer') . qq|
|.$locale->text('Ust-IDNr').qq|| . $locale->text('Ust-IDNr') . qq|
|.$locale->text('DUNS-Nr').qq|| . $locale->text('DUNS-Nr') . qq|
@@ -520,56 +555,61 @@ 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| New +  Old
|.$locale->text('Database').qq|| . $locale->text('Database') . qq|
@@ -578,29 +618,30 @@ 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|| . $locale->text('Driver') . qq|  $item|.$locale->text('Host').qq|| . $locale->text('Host') . qq| {"${item}_dbhost"}>
|.$locale->text('Dataset').qq|| . $locale->text('Dataset') . qq| {Pg_dbname}>|.$locale->text('Port').qq|| . $locale->text('Port') . qq| {Pg_dbport}>
|.$locale->text('User').qq|| . $locale->text('User') . qq| {"${item}_dbuser"}>|.$locale->text('Password').qq|| . $locale->text('Password') . qq| {"${item}_dbpasswd"}>
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|| . $locale->text('Password') . qq| {"${item}_dbpasswd"}>
@@ -635,13 +675,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 +697,7 @@ sub form_header { if ($item =~ /--/) { ($level, $menuitem) = split /--/, $item, 2; } else { - $level = $item; + $level = $item; $menuitem = $item; push @acsorder, $item; } @@ -665,46 +705,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 @@ -825,46 +870,47 @@ sub save { $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 +919,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)$/, + 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 +1041,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 +1064,73 @@ 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| - {path}> {rpw}>

- +

@@ -1089,34 +1140,29 @@ sub change_admin_password { } - sub change_password { $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 +1170,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 +1231,7 @@ sub dbselect_source { - + {dbdriver}> @@ -1193,22 +1241,22 @@ sub dbselect_source { - + - + - + - + - + @@ -1221,25 +1269,30 @@ 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|| . $locale->text('User') . qq| {dbuser}>|.$locale->text('Password').qq|| . $locale->text('Password') . qq|
$form->{connectstring}
- - + {path}> {rpw}>
- - - + + + -

|.$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 +1302,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| @@ -1273,7 +1327,6 @@ sub update_dataset {

$form->{title}

|; - foreach $key (sort keys %needsupdate) { if ($needsupdate{$key} ne $form->{dbversion}) { $upd .= qq| $key\n|; @@ -1283,7 +1336,6 @@ sub update_dataset { chop $form->{dbupdate}; - if ($form->{dbupdate}) { print qq| @@ -1298,7 +1350,7 @@ sub update_dataset { {dbdefault}> - |.$locale->text('The following Datasets need to be updated').qq| + | . $locale->text('The following Datasets need to be updated') . qq| @@ -1312,9 +1364,8 @@ $upd - + - {path}> {rpw}> @@ -1323,7 +1374,8 @@ $upd

- + @@ -1335,7 +1387,7 @@ $upd print $locale->text('All Datasets up to date!'); } - + print qq| @@ -1344,15 +1396,13 @@ $upd } - sub dbupdate { User->dbupdate(\%$form); $form->redirect($locale->text('Dataset updated!')); - -} +} sub create_dataset { @@ -1360,11 +1410,12 @@ sub create_dataset { $dbsources .= "[$item] "; } - opendir SQLDIR, "sql/." or $form-error($!); + opendir SQLDIR, "sql/." or $form - error($!); foreach $item (sort grep /-chart\.sql/, readdir SQLDIR) { next if ($item eq 'Default-chart.sql'); $item =~ s/-chart\.sql//; - push @charts, qq|  $item|; + push @charts, + qq|  $item|; } closedir SQLDIR; @@ -1385,9 +1436,12 @@ sub create_dataset {