]> wagnertech.de Git - mfinanz.git/commitdiff
Merge branch 'master' of git@lx-office.linet-services.de:lx-office-erp
authorSven Schöling <s.schoeling@linet-services.de>
Thu, 10 Feb 2011 12:10:36 +0000 (13:10 +0100)
committerSven Schöling <s.schoeling@linet-services.de>
Thu, 10 Feb 2011 12:10:36 +0000 (13:10 +0100)
47 files changed:
DEBIAN/DEBIAN/postinst
DEBIAN/mk_erp_deb.sh
SL/Auth.pm
SL/Auth/LDAP.pm
SL/DB/PeriodicInvoicesConfig.pm
SL/InstallationCheck.pm
SL/LxOfficeConf.pm
VERSION
config/authentication.pl.default [deleted file]
config/lx_office.conf.default
doc/INSTALL.texi
doc/INSTALL.txt
doc/INSTALL/Administratorpasswort.html
doc/INSTALL/Aktuelle-Hinweise.html
doc/INSTALL/Anlegen-der-Authentifizierungsdatenbank.html
doc/INSTALL/Anpassung-der-PostgreSQL_002dKonfiguration.html
doc/INSTALL/Apache_002dKonfiguration.html
doc/INSTALL/Authentifizierungsdatenbank.html
doc/INSTALL/Ben_00c3_00b6tigte-Software-und-Pakete.html
doc/INSTALL/Benutzer-anlegen.html
doc/INSTALL/Benutzer_002d-und-Gruppenverwaltung.html
doc/INSTALL/Benutzerauthentifizierung-und-Administratorpasswort.html
doc/INSTALL/Betriebssystem.html
doc/INSTALL/Datenbankbenutzer-anlegen.html
doc/INSTALL/Datenbanken-anlegen.html
doc/INSTALL/Erweiterung-f_00c3_00bcr-servergespeicherte-Prozeduren.html
doc/INSTALL/Grundlagen-zur-Benutzerauthentifizierung.html
doc/INSTALL/Gruppen-anlegen.html
doc/INSTALL/Gruppenmitgliedschaften-verwalten.html
doc/INSTALL/Lx_002dOffice-ERP-verwenden.html
doc/INSTALL/Manuelle-Installation-des-Programmpaketes.html
doc/INSTALL/Migration-alter-Installationen.html
doc/INSTALL/Name-des-Session_002dCookies.html
doc/INSTALL/OpenDocument_002dVorlagen.html
doc/INSTALL/Pakete.html
doc/INSTALL/Passwort_00c3_00bcberpr_00c3_00bcfung.html
doc/INSTALL/Zeichens_00c3_00a4tze_002fdie-Verwendung-von-UTF_002d8.html
doc/INSTALL/Zusammenh_00c3_00a4nge.html
doc/INSTALL/_00c3_0084nderungen-an-Konfigurationsdateien.html
doc/INSTALL/index.html
doc/modules/README.File-Slurp [new file with mode: 0644]
locale/de/all
lxo-import/import_lib.php
modules/fallback/File/Slurp.pm [new file with mode: 0644]
scripts/find-use.pl
templates/webpages/admin/check_auth_tables.html
templates/webpages/login/authentication_pl_missing.html

index 97acf8a283b9d715ab2553f8ddf4b94787d72bd4..5604cd99cb342daa1c62567e94d735fda5274b82 100755 (executable)
@@ -78,51 +78,46 @@ config_postgresql_sql_routines() {
 
 set_lx_office_erp_web_admin_password() {
 
+       if ! [ -f /etc/lx-office-erp/lx_office.conf ] ; then
+               cp /etc/lx-office-erp/lx_office.conf.default /etc/lx-office-erp/lx_office.conf
+       fi
        db_get lx-office-erp/admin-password
        ADMINPASSWORD="$RET"
 
-       cat /etc/lx-office-erp/authentication.pl.default | \
-       sed --expression "s/\$self->{admin_password} = 'admin';/\$self->{admin_password} = '$ADMINPASSWORD';/g" \
+       cat /etc/lx-office-erp/lx_office.conf | \
+       sed --expression "s/admin_password = /admin_password = $ADMINPASSWORD/g" \
        > /tmp/1.txt
 
-       mv /tmp/1.txt /etc/lx-office-erp/authentication.pl
+       mv /tmp/1.txt /etc/lx-office-erp/lx_office.conf
 
 }
 
 
-set_lx_office_erp_authentication_db_password() {
+set_lx_office_erp_authentication_db_user_password() {
        db_get lx-office-erp/lx-office-erp-user-postgresql-password
        PASSWORD="$RET"
 
-       cat /etc/lx-office-erp/authentication.pl | \
-       sed --expression "s/'password' => '',/'password' => '$PASSWORD',/g" \
+       cat /etc/lx-office-erp/lx_office.conf | \
+       sed --expression "s/^password = /password = $PASSWORD/g" \
        > /tmp/1.txt
 
-       mv /tmp/1.txt /etc/lx-office-erp/authentication.pl
+       cat /tmp/1.txt | \
+       sed --expression "s/^user = postgres/user = lxoffice/g" \
+       >  /etc/lx-office-erp/lx_office.conf
 
 }
 
-set_lx_office_erp_authentication_db_user() {
-       USER="lxoffice"
-
-       cat /etc/lx-office-erp/authentication.pl | \
-       sed --expression "s/'user'     => 'postgres',/'user'     => '$USER',/g" \
-       > /tmp/1.txt
-
-       mv /tmp/1.txt /etc/lx-office-erp/authentication.pl
-}
 
 set_user_rights() {
        chown -R www-data:www-data /usr/lib/lx-office-erp/users
        chown -R www-data:www-data /usr/lib/lx-office-erp/templates
        chown www-data:www-data /etc/lx-office-erp/lx_office.conf
        chown www-data:www-data /usr/lib/lx-office-erp/menu.ini
-       chown www-data:www-data /etc/lx-office-erp/authentication.pl
        chmod 0600 /etc/lx-office-erp/lx_office.conf
-       chmod 0600 /etc/lx-office-erp/authentication.pl
 }
 
 disable_ipv6_on_lo_interface() {
+        #Ist wohl nicht mehr notwendig.
        # 2009-04-25
         # Perls Libraries are not yet ipv6 read
         echo "WICHTIG: ipv6 ist nunmehr auf dem Loopback-Interface deaktiviert, um die Funktionsfähigkeit von Lx-Office-ERP zu gewährleisten!"
@@ -153,12 +148,15 @@ mk_new_config() {
 }
 
 mk_links() {
-    if ! [ -f /usr/lib/lx-office-erp/config/authentication.pl ] ; then
-        ln -s /etc/lx-office-erp/authentication.pl /usr/lib/lx-office-erp/config/authentication.pl
-    fi;
     if ! [ -f /usr/lib/lx-office-erp/config/lx_office.conf ] ; then
         ln -s /etc/lx-office-erp/lx_office.conf /usr/lib/lx-office-erp/config/lx_office.conf
     fi;
+    if ! [ -f /usr/lib/lx-office-erp/config/lx_office.conf.default ] ; then
+        ln -s /etc/lx-office-erp/lx_office.conf.default /usr/lib/lx-office-erp/config/lx_office.conf.default
+    fi;
+    if [ -e /etc/lx-office-erp/authentication.pl ] ; then
+       rm /etc/lx-office-erp/authentication.pl
+    fi
     if [ -e /etc/apache2 ] ; then
         if ! [ -f /etc/apache2/conf.d/lx-office-erp.apache2.conf ] ; then
             ln -s /etc/lx-office-erp/lx-office-erp.apache2.conf /etc/apache2/conf.d/lx-office-erp.apache2.conf
@@ -195,16 +193,15 @@ case "$1" in
         VER=`cat /var/www/lx-office-erp/VERSION | cut -d '.' -f2`
         if [ $VER = '6' ]; then
             echo " ! 2.6 !" >> /tmp/lxo-erp.log
-            echo "Version 2.6"
+            echo "Version 2.6.x"
             mk_new_menu
         else
             mk_new_menu
             mk_new_config
             config_postgresql_factory_script
             set_lx_office_erp_web_admin_password
-            set_lx_office_erp_authentication_db_user
-            set_lx_office_erp_authentication_db_password
-               disable_ipv6_on_lo_interface
+            set_lx_office_erp_authentication_db_user_password
+           #  disable_ipv6_on_lo_interface
             mk_links
         fi;
 
@@ -219,9 +216,8 @@ case "$1" in
         mk_new_config
         config_postgresql_factory_script
         set_lx_office_erp_web_admin_password
-        set_lx_office_erp_authentication_db_user
-        set_lx_office_erp_authentication_db_password
-        disable_ipv6_on_lo_interface
+        set_lx_office_erp_authentication_db_user_password
+        # disable_ipv6_on_lo_interface
         mk_links
 
         set_user_rights
index a0029531fa50fe11e51edfc227e093d6e743d2ec..d656752a1aaa29f2eaa8d5492efb6c30b961588a 100755 (executable)
@@ -47,7 +47,6 @@ cp -a $SRC/*.pl usr/lib/lx-office-erp
 cp $SRC/VERSION usr/lib/lx-office-erp
 cp $SRC/index.html usr/lib/lx-office-erp
 cp $SRC/config/lx_office.conf.default etc/lx-office-erp/lx_office.conf.default
-cp $SRC/config/authentication.pl.default etc/lx-office-erp/
 cp $SRC/menu.ini usr/lib/lx-office-erp/menu.default
 cp -a $SRC/css var/lib/lx-office-erp
 cp -a $SRC/templates var/lib/lx-office-erp
index f2d15a8c71d4bd5cf59920fdcd2e4aeb31f424f2..3b7a6287f4101fdad1b5660d99a67e5d68ac9d74 100644 (file)
@@ -78,27 +78,11 @@ sub mini_error {
 sub _read_auth_config {
   $main::lxdebug->enter_sub();
 
-  my $self   = shift;
-
-  my $code;
-  my $in = IO::File->new('config/authentication.pl', 'r');
-
-  if (!$in) {
-    my $locale = Locale->new('en');
-    $self->mini_error($locale->text('The config file "config/authentication.pl" was not found.'));
-  }
-
-  while (<$in>) {
-    $code .= $_;
-  }
-  $in->close();
-
-  eval $code;
+  my $self = shift;
 
-  if ($@) {
-    my $locale = Locale->new('en');
-    $self->mini_error($locale->text('The config file "config/authentication.pl" contained invalid Perl code:'), $@);
-  }
+  map { $self->{$_} = $::lx_office_conf{authentication}->{$_} } keys %{ $::lx_office_conf{authentication} };
+  $self->{DB_config}   = $::lx_office_conf{'authentication/database'};
+  $self->{LDAP_config} = $::lx_office_conf{'authentication/ldap'};
 
   if ($self->{module} eq 'DB') {
     $self->{authenticator} = SL::Auth::DB->new($self);
@@ -109,19 +93,19 @@ sub _read_auth_config {
 
   if (!$self->{authenticator}) {
     my $locale = Locale->new('en');
-    $self->mini_error($locale->text('No or an unknown authenticantion module specified in "config/authentication.pl".'));
+    $self->mini_error($locale->text('No or an unknown authenticantion module specified in "config/lx_office.conf".'));
   }
 
   my $cfg = $self->{DB_config};
 
   if (!$cfg) {
     my $locale = Locale->new('en');
-    $self->mini_error($locale->text('config/authentication.pl: Key "DB_config" is missing.'));
+    $self->mini_error($locale->text('config/lx_office.conf: Key "DB_config" is missing.'));
   }
 
   if (!$cfg->{host} || !$cfg->{db} || !$cfg->{user}) {
     my $locale = Locale->new('en');
-    $self->mini_error($locale->text('config/authentication.pl: Missing parameters in "DB_config". Required parameters are "host", "db" and "user".'));
+    $self->mini_error($locale->text('config/lx_office.conf: Missing parameters in "authentication/database". Required parameters are "host", "db" and "user".'));
   }
 
   $self->{authenticator}->verify_config();
index 1b33de36a18635bb7f1b4b6494b2ee0f2acb52e9..ea9326275524b912268fa0da11d2917174632182 100644 (file)
@@ -41,20 +41,20 @@ sub _connect {
   $self->{ldap} = Net::LDAP->new($cfg->{host}, 'port' => $port);
 
   if (!$self->{ldap}) {
-    $main::form->error($main::locale->text('The LDAP server "#1:#2" is unreachable. Please check config/authentication.pl.', $cfg->{host}, $port));
+    $main::form->error($main::locale->text('The LDAP server "#1:#2" is unreachable. Please check config/lx_office.conf.', $cfg->{host}, $port));
   }
 
   if ($cfg->{tls}) {
     my $mesg = $self->{ldap}->start_tls('verify' => 'none');
     if ($mesg->is_error()) {
-      $main::form->error($main::locale->text('The connection to the LDAP server cannot be encrypted (SSL/TLS startup failure). Please check config/authentication.pl.'));
+      $main::form->error($main::locale->text('The connection to the LDAP server cannot be encrypted (SSL/TLS startup failure). Please check config/lx_office.conf.'));
     }
   }
 
   if ($cfg->{bind_dn}) {
     my $mesg = $self->{ldap}->bind($cfg->{bind_dn}, 'password' => $cfg->{bind_password});
     if ($mesg->is_error()) {
-      $main::form->error($main::locale->text('Binding to the LDAP server as "#1" failed. Please check config/authentication.pl.', $cfg->{bind_dn}));
+      $main::form->error($main::locale->text('Binding to the LDAP server as "#1" failed. Please check config/lx_office.conf.', $cfg->{bind_dn}));
     }
   }
 
@@ -192,11 +192,11 @@ sub verify_config {
   my $cfg  = $self->{auth}->{LDAP_config};
 
   if (!$cfg) {
-    $form->error($locale->text('config/authentication.pl: Key "LDAP_config" is missing.'));
+    $form->error($locale->text('config/lx_office.conf: Key "authentication/ldap" is missing.'));
   }
 
   if (!$cfg->{host} || !$cfg->{attribute} || !$cfg->{base_dn}) {
-    $form->error($locale->text('config/authentication.pl: Missing parameters in "LDAP_config". Required parameters are "host", "attribute" and "base_dn".'));
+    $form->error($locale->text('config/lx_office.conf: Missing parameters in "authentication/ldap". Required parameters are "host", "attribute" and "base_dn".'));
   }
 
   $main::lxdebug->leave_sub();
index d49595bb53e39d6bf1158c73367feed0293a17e5..bb64a5b3c996a2d79e70e79df68d34e143e3e191 100644 (file)
@@ -2,8 +2,6 @@ package SL::DB::PeriodicInvoicesConfig;
 
 use strict;
 
-use Readonly;
-
 use SL::DB::MetaSetup::PeriodicInvoicesConfig;
 
 __PACKAGE__->meta->add_relationships(
@@ -19,8 +17,8 @@ __PACKAGE__->meta->initialize;
 # Creates get_all, get_all_count, get_all_iterator, delete_all and update_all.
 __PACKAGE__->meta->make_manager_class;
 
-Readonly our @PERIODICITIES  => qw(m q f b y);
-Readonly our %PERIOD_LENGTHS => ( m => 1, q => 3, f => 4, b => 6, y => 12 );
+our @PERIODICITIES  = qw(m q f b y);
+our %PERIOD_LENGTHS = ( m => 1, q => 3, f => 4, b => 6, y => 12 );
 
 sub get_period_length {
   my $self = shift;
index 0ed1d938456dbe25a5f38cdce51c7063893c808b..84477884027a71da00f06ea450683bbecb44d485 100644 (file)
@@ -12,6 +12,7 @@ BEGIN {
   { name => "parent",                              url => "http://search.cpan.org/~corion/",    debian => 'libparent-perl' },
   { name => "Archive::Zip",    version => '1.16',  url => "http://search.cpan.org/~adamk/",     debian => 'libarchive-zip-perl' },
   { name => "Class::Accessor", version => '0.30',  url => "http://search.cpan.org/~kasei/",     debian => 'libclass-accessor-perl' },
+  { name => "Config::Std",                         url => "http://search.cpan.org/~dconway/",   debian => 'libconfig-std-perl' },
   { name => "CGI::Ajax",       version => '0.697', url => "http://search.cpan.org/~bct/" }, # no debian package, ours contains bugfixes
   { name => "DateTime",                            url => "http://search.cpan.org/~drolsky/",   debian => 'libdatetime-perl' },
   { name => "DBI",             version => '1.50',  url => "http://search.cpan.org/~timb/",      debian => 'libdbi-perl' },
@@ -19,6 +20,7 @@ BEGIN {
   { name => "Email::Address",                      url => "http://search.cpan.org/~rjbs/",      debian => 'libemail-address-perl' },
   { name => "FCGI",                                url => "http://search.cpan.org/~mstrout/",   debian => 'libfcgi-perl' },
   { name => "List::MoreUtils", version => '0.21',  url => "http://search.cpan.org/~vparseval/", debian => 'liblist-moreutils-perl' },
+  { name => "Params::Validate",                    url => "http://search.cpan.org/~drolsky/",   debian => 'libparams-validate-perl' },
   { name => "PDF::API2",       version => '2.000', url => "http://search.cpan.org/~areibens/",  debian => 'libpdf-api2-perl' },
   { name => "Rose::Object",                        url => "http://search.cpan.org/~jsiracusa/", debian => 'librose-object-perl' },
   { name => "Rose::DB",                            url => "http://search.cpan.org/~jsiracusa/", debian => 'librose-db-perl' },
@@ -50,11 +52,8 @@ my %conditional_dependencies;
 sub check_for_conditional_dependencies {
   return if $conditional_dependencies{net_ldap}++;
 
-  my $self = {};
-  eval do { local (@ARGV, $/) = 'config/authentication.pl'; <> } or return;
-
   push @required_modules, { 'name' => 'Net::LDAP', 'url' => 'http://search.cpan.org/~gbarr/' }
-    if $self->{module} && ($self->{module} eq 'LDAP');
+    if $::lx_office_conf{authentication} && ($::lx_office_conf{authentication}->{module} eq 'LDAP');
 }
 
 sub test_all_modules {
index b0d801024c0056df8e9fd07ff0dffcd6cb2e19c1..8f44016e6b43175493b2e32c0e7c12b000ed4e6e 100644 (file)
@@ -6,9 +6,14 @@ use Config::Std;
 use Encode;
 
 sub read {
-  my $file = -f 'config/lx_office.conf' ? 'config/lx_office.conf' : 'config/lx_office.conf.default';
-  read_config $file => %::lx_office_conf;
+  read_config 'config/lx_office.conf.default' => %::lx_office_conf;
   _decode_recursively(\%::lx_office_conf);
+
+  if (-f 'config/lx_office.conf') {
+    read_config 'config/lx_office.conf' => my %local_conf;
+    _decode_recursively(\%local_conf);
+    _flat_merge(\%::lx_office_conf, \%local_conf);
+  }
 }
 
 sub _decode_recursively {
@@ -23,4 +28,17 @@ sub _decode_recursively {
   }
 }
 
+sub _flat_merge {
+  my ($dst, $src) = @_;
+
+  while (my ($key, $value) = each %{ $src }) {
+    if (!exists $dst->{$key}) {
+      $dst->{$key} = $value;
+
+    } else {
+      map { $dst->{$key}->{$_} = $value->{$_} } keys %{ $value };
+    }
+  }
+}
+
 1;
diff --git a/VERSION b/VERSION
index 3e9dc5c903f0b42f1864896ce67a031339beec2a..3759d9ef405b141372305c11de254c2dab878dd4 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-2.6.3-unstable
+2.7.0-unstable
diff --git a/config/authentication.pl.default b/config/authentication.pl.default
deleted file mode 100644 (file)
index 855ce32..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-#!/usr/bin/perl
-
-# Das Passwort für den Zugang zum Administrationsfrontend im Klartext.
-# Kann nur in dieser Datei geändert werden, nicht im Administrationsfrontend
-# selber.
-$self->{admin_password} = 'admin';
-
-# Welches Modul soll zur Authentifizierung der Logins benutzt werden?
-# Entweder 'DB' oder 'LDAP'.
-#
-# Wenn LDAP-Authentifizierung benutzt wird, dann kann der Benutzer sein
-# Passwort nicht über Lx-Office ändern.
-$self->{module} = 'DB';
-
-# Verbindungsinformationen zur Datenbank mit den Benutzer- und
-# Gruppeninformationen. Wird auch dann benötigt, wenn gegen einen
-# LDAP-Server authentifiziert wird, weil dieser nur zur Passwortüberprüfung
-# benutzt wird. Der Rest der Benutzerdaten ist in der Datenbank hinterlegt.
-#
-# Ist 'module' = 'DB' dann wird diese Datenbank auch für die
-# Passwortüberprüfung benutzt.
-$self->{DB_config} = {
-  'host'     => 'localhost',
-  'port'     => 5432,
-  'db'       => 'lxerp_auth',
-  'user'     => 'lxoffice',
-  'password' => '',
-};
-
-# Wird nur benötigt, wenn 'module' = 'LDAP' ist. An diesem LDAP-Server
-# werden die Benutzerpasswörter durch einen LDAP-Bind überprüft.
-#
-# Es müssen mindestens die Parameter host, attribute und base_dn
-# angegeben werden.
-#
-# tls:       Verschlüsselung per TLS erzwingen
-# attribute: Das LDAP-Attribut, das den Loginnamen enthält
-# base_dn:   Basis-DN, ab der der LDAP-Baum durchsucht wird
-# filter:    Ein optionaler LDAP-Filter. Die Zeichenkette '<%login%>' wird
-#            innerhalb des Filters durch den Loginnamen ersetzt.
-# bind_dn und bind_password:
-#            Wenn zum Durchsuchen des LDAP-Baumes eine Anmeldung erforderlich
-#            ist (z.B. beim ActiveDirectory), dann müssen diese beiden
-#            Parameter gesetzt sein.
-$self->{LDAP_config} = {
-  'host'          => 'localhost',
-  'port'          => 389,
-  'tls'           => 0,
-  'attribute'     => 'uid',
-  'base_dn'       => '',
-  'filter'        => '',
-
-  'bind_dn'       => undef,
-  'bind_password' => undef,
-};
-
-# Der Name des Cookies kann geändert werden, sofern gewünscht.
-# $self->{cookie_name} = 'lx_office_erp_session_id';
-
-# Die Zeitspanne, bis eine inaktive Session ungültig wird, kann
-# hier geändert werden. Der Standardwert ist acht Stunden.
-# Die Angabe ist in Minuten.
-# $self->{session_timeout} = 8 * 60;
-
-1;
index ff5e97b68b2c33ab098f62210f4a23f6a16ca30c..b4d4471f72875198b057556ed5ebd51100742db5 100644 (file)
@@ -1,3 +1,61 @@
+[authentication]
+# The cleartext password for access to the administrative part.  It
+# can only be changed in this file, not via the administrative
+# interface.
+admin_password = admin123
+
+# Which module to use for authentication. Valid values are 'DB' and
+# 'LDAP'.  If 'LDAP' is used then users cannot change their password
+# via Lx-Office.
+module = DB
+
+# The cookie name can be changed if desired.
+cookie_name = lx_office_erp_session_id
+
+# The number of minutes a session is valid. The default value is eight
+# hours.
+session_timeout = 480
+
+[authentication/database]
+# Connection information for the database with the user and group
+# inforamtion.  This information is always needed, even if LDAP is
+# used for authentication, as the user information is stored in this
+# database while LDAP is only used for password verification.
+#
+# If 'module' is set to 'DB' then this database also contains the
+# users' passwords.
+host     = localhost
+port     = 5432
+db       = lxerp_auth
+user     = postgres
+password =
+
+[authentication/ldap]
+# This section is only relevant if 'module' is set to 'LDAP'. It names
+# the LDAP server the passwords are verified against by doing a LDAP
+# bind operation.
+#
+# At least the parameters 'host', 'aatribute' and 'base_dn' have to be
+# specified.
+#
+# tls:       Activate encryption via TLS
+# attribute: Name of the LDAP attribute containing the user's login name
+# base_dn:   Base DN the LDAP searches start from
+# filter:    An optional LDAP filter specification. The string '<%login%>'
+#            is replaced by the user's login name before the search is started.
+# bind_dn and bind_password:
+#            If searching the LDAP tree requires user credentials
+#            (e.g. ActiveDirectory) then these two parameters specify
+#            the user name and password to use.
+host          = localhost
+port          = 389
+tls           = 0
+attribute     = uid
+base_dn       =
+filter        =
+bind_dn       =
+bind_password =
+
 [system]
 # EUR: Einnahmen-Überschussrechnung (net income method). Set this to 1
 # if your company uses the net income method and to 0 for balacing.
index 63ac6aeaac397b31eb3df79a0be2095fbbd1cd0c..c4636ba9ee6c2ed673a17920ab1b0f553cb1032c 100644 (file)
@@ -139,6 +139,8 @@ Class::Accessor
 @item
 CGI::Ajax
 @item
+Config::Std
+@item
 DateTime
 @item
 DBI
@@ -149,6 +151,8 @@ Email::Address
 @item
 List::MoreUtils
 @item
+Params::Validate
+@item
 PDF::API2
 @item
 Rose::Object
@@ -190,7 +194,7 @@ Die zu installierenden Pakete können in den verschiedenen Distributionen unters
 
 Für Debian oder Ubuntu benötigen Sie diese Pakete:
 
-@code{apache2 postgresql libparent-perl libarchive-zip-perl libclass-accessor-perl libdatetime-perl libdbi-perl libdbd-pg-perl libpg-perl libemail-address-perl liblist-moreutils-perl libpdf-api2-perl librose-object-perl librose-db-perl librose-db-object-perl libtemplate-perl libtext-csv-xs-perl libtext-iconv-perl liburi-perl libxml-writer-perl libyaml-perl}
+@code{apache2 postgresql libparent-perl libarchive-zip-perl libclass-accessor-perl libdatetime-perl libdbi-perl libdbd-pg-perl libpg-perl libemail-address-perl liblist-moreutils-perl libpdf-api2-perl librose-object-perl librose-db-perl librose-db-object-perl libtemplate-perl libtext-csv-xs-perl libtext-iconv-perl liburi-perl libxml-writer-perl libyaml-perl libconfig-std-perl libparams-validate-perl}
 
 Für Fedora Core benötigen Sie diese Pakete:
 
@@ -444,10 +448,10 @@ LDAP-Server überprüft werden.
 
 Welche Art der Passwortüberprüfung Lx-Office benutzt und wie Lx-Office
 die Authentifizierungsdatenbank erreichen kann, wird in der
-Konfigurationsdatei @code{config/authentication.pl} festgelegt. Diese
+Konfigurationsdatei @code{config/lx_office.conf} festgelegt. Diese
 muss bei der Installation und bei einem Upgrade von einer Version vor
 v2.6.0 angelegt werden. Eine Beispielkonfigurationsdatei
-@code{config/authentication.pl.default} existiert, die als Vorlage
+@code{config/lx_office.conf.default} existiert, die als Vorlage
 benutzt werden kann.
 
 @node Administratorpasswort
@@ -537,7 +541,7 @@ existiert.
 @node Anlegen der Authentifizierungsdatenbank
 @section Anlegen der Authentifizierungsdatenbank
 
-Nachdem alle Einstellungen in @code{config/authentication.pl}
+Nachdem alle Einstellungen in @code{config/lx_office.conf}
 vorgenommen wurden, muss Lx-Office die Authentifizierungsdatenbank
 anlegen. Dieses geschieht automatisch, wenn Sie sich im
 Administrationsmodul anmelden, das unter der folgenden URL erreichbar
@@ -558,7 +562,7 @@ unter folgender URL finden:
 @uref{http://localhost/lx-erp/admin.pl}
 
 Verwenden Sie zur Anmeldung das Password, dass Sie in der Datei
-@code{config/authentication.pl} eingetragen haben.
+@code{config/lx_office.conf} eingetragen haben.
 
 @menu
 * Zusammenhänge:: Übersicht über Benutzer, Gruppen, Berechtigungen und Datenbanken
index 106d8af75aee313255eaec02a734a54354f8c08c..fd27916050390f6272c73178f92ecd6e67bd4392 100644 (file)
@@ -128,6 +128,8 @@ Bestandteil einer Standard-Perl-Installation sind:
 
    * CGI::Ajax
 
+   * Config::Std
+
    * DateTime
 
    * DBI
@@ -138,6 +140,8 @@ Bestandteil einer Standard-Perl-Installation sind:
 
    * List::MoreUtils
 
+   * Params::Validate
+
    * PDF::API2
 
    * Rose::Object
@@ -185,7 +189,8 @@ libclass-accessor-perl libdatetime-perl libdbi-perl libdbd-pg-perl
 libpg-perl libemail-address-perl liblist-moreutils-perl
 libpdf-api2-perl librose-object-perl librose-db-perl
 librose-db-object-perl libtemplate-perl libtext-csv-xs-perl
-libtext-iconv-perl liburi-perl libxml-writer-perl libyaml-perl'
+libtext-iconv-perl liburi-perl libxml-writer-perl libyaml-perl
+libconfig-std-perl libparams-validate-perl'
 
    Für Fedora Core benötigen Sie diese Pakete:
 
@@ -408,10 +413,10 @@ LDAP-Server überprüft werden.
 
    Welche Art der Passwortüberprüfung Lx-Office benutzt und wie
 Lx-Office die Authentifizierungsdatenbank erreichen kann, wird in der
-Konfigurationsdatei `config/authentication.pl' festgelegt. Diese muss
-bei der Installation und bei einem Upgrade von einer Version vor v2.6.0
+Konfigurationsdatei `config/lx_office.conf' festgelegt. Diese muss bei
+der Installation und bei einem Upgrade von einer Version vor v2.6.0
 angelegt werden. Eine Beispielkonfigurationsdatei
-`config/authentication.pl.default' existiert, die als Vorlage benutzt
+`config/lx_office.conf.default' existiert, die als Vorlage benutzt
 werden kann.
 
 6.2 Administratorpasswort
@@ -506,7 +511,7 @@ existiert.
 6.6 Anlegen der Authentifizierungsdatenbank
 ===========================================
 
-Nachdem alle Einstellungen in `config/authentication.pl' vorgenommen
+Nachdem alle Einstellungen in `config/lx_office.conf' vorgenommen
 wurden, muss Lx-Office die Authentifizierungsdatenbank anlegen. Dieses
 geschieht automatisch, wenn Sie sich im Administrationsmodul anmelden,
 das unter der folgenden URL erreichbar sein sollte:
@@ -523,7 +528,7 @@ folgender URL finden:
    `http://localhost/lx-erp/admin.pl'
 
    Verwenden Sie zur Anmeldung das Password, dass Sie in der Datei
-`config/authentication.pl' eingetragen haben.
+`config/lx_office.conf' eingetragen haben.
 
 7.1 Zusammenhänge
 ==================
index ddbffa0944f3813b7f8549ddd8dd62dde2877b06..5b52acb0e5c873b4e86b15ede93abcc6f42d212c 100644 (file)
@@ -3,7 +3,7 @@
 <title>Administratorpasswort - Lx-Office Installationsanleitung</title>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <meta name="description" content="Lx-Office Installationsanleitung">
-<meta name="generator" content="makeinfo 4.11">
+<meta name="generator" content="makeinfo 4.13">
 <link title="Top" rel="start" href="index.html#Top">
 <link rel="up" href="Benutzerauthentifizierung-und-Administratorpasswort.html#Benutzerauthentifizierung-und-Administratorpasswort" title="Benutzerauthentifizierung und Administratorpasswort">
 <link rel="prev" href="Grundlagen-zur-Benutzerauthentifizierung.html#Grundlagen-zur-Benutzerauthentifizierung" title="Grundlagen zur Benutzerauthentifizierung">
 </head>
 <body>
 <div class="node">
-<p>
 <a name="Administratorpasswort"></a>
-n&auml;chstes:&nbsp;<a rel="next" accesskey="n" href="Authentifizierungsdatenbank.html#Authentifizierungsdatenbank">Authentifizierungsdatenbank</a>,
-voriges:&nbsp;<a rel="previous" accesskey="p" href="Grundlagen-zur-Benutzerauthentifizierung.html#Grundlagen-zur-Benutzerauthentifizierung">Grundlagen zur Benutzerauthentifizierung</a>,
-aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="Benutzerauthentifizierung-und-Administratorpasswort.html#Benutzerauthentifizierung-und-Administratorpasswort">Benutzerauthentifizierung und Administratorpasswort</a>
+<p>
+Next:&nbsp;<a rel="next" accesskey="n" href="Authentifizierungsdatenbank.html#Authentifizierungsdatenbank">Authentifizierungsdatenbank</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="Grundlagen-zur-Benutzerauthentifizierung.html#Grundlagen-zur-Benutzerauthentifizierung">Grundlagen zur Benutzerauthentifizierung</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="Benutzerauthentifizierung-und-Administratorpasswort.html#Benutzerauthentifizierung-und-Administratorpasswort">Benutzerauthentifizierung und Administratorpasswort</a>
 <hr>
 </div>
 
index b73c6d3545ff37122544b24ee5edc8b2d75e49ed..1f3ea1fadf52d85f893434b22c15b3f0eaa9f538 100644 (file)
@@ -3,7 +3,7 @@
 <title>Aktuelle Hinweise - Lx-Office Installationsanleitung</title>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <meta name="description" content="Lx-Office Installationsanleitung">
-<meta name="generator" content="makeinfo 4.11">
+<meta name="generator" content="makeinfo 4.13">
 <link title="Top" rel="start" href="index.html#Top">
 <link rel="prev" href="index.html#Top" title="Top">
 <link rel="next" href="Ben_00c3_00b6tigte-Software-und-Pakete.html#Ben_00c3_00b6tigte-Software-und-Pakete" title="Benötigte Software und Pakete">
 </head>
 <body>
 <div class="node">
-<p>
 <a name="Aktuelle-Hinweise"></a>
-n&auml;chstes:&nbsp;<a rel="next" accesskey="n" href="Ben_00c3_00b6tigte-Software-und-Pakete.html#Ben_00c3_00b6tigte-Software-und-Pakete">Benötigte Software und Pakete</a>,
-voriges:&nbsp;<a rel="previous" accesskey="p" href="index.html#Top">Top</a>,
-aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="index.html#Top">Top</a>
+<p>
+Next:&nbsp;<a rel="next" accesskey="n" href="Ben_00c3_00b6tigte-Software-und-Pakete.html#Ben_00c3_00b6tigte-Software-und-Pakete">Benötigte Software und Pakete</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="index.html#Top">Top</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="index.html#Top">Top</a>
 <hr>
 </div>
 
index f3aa5b96ef8ec0f64884c4705ebfd73252ce99e0..d7cb5442c1e600c5361670c3d81c47a15ffcf6a6 100644 (file)
@@ -3,7 +3,7 @@
 <title>Anlegen der Authentifizierungsdatenbank - Lx-Office Installationsanleitung</title>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <meta name="description" content="Lx-Office Installationsanleitung">
-<meta name="generator" content="makeinfo 4.11">
+<meta name="generator" content="makeinfo 4.13">
 <link title="Top" rel="start" href="index.html#Top">
 <link rel="up" href="Benutzerauthentifizierung-und-Administratorpasswort.html#Benutzerauthentifizierung-und-Administratorpasswort" title="Benutzerauthentifizierung und Administratorpasswort">
 <link rel="prev" href="Name-des-Session_002dCookies.html#Name-des-Session_002dCookies" title="Name des Session-Cookies">
 </head>
 <body>
 <div class="node">
-<p>
 <a name="Anlegen-der-Authentifizierungsdatenbank"></a>
-voriges:&nbsp;<a rel="previous" accesskey="p" href="Name-des-Session_002dCookies.html#Name-des-Session_002dCookies">Name des Session-Cookies</a>,
-aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="Benutzerauthentifizierung-und-Administratorpasswort.html#Benutzerauthentifizierung-und-Administratorpasswort">Benutzerauthentifizierung und Administratorpasswort</a>
+<p>
+Previous:&nbsp;<a rel="previous" accesskey="p" href="Name-des-Session_002dCookies.html#Name-des-Session_002dCookies">Name des Session-Cookies</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="Benutzerauthentifizierung-und-Administratorpasswort.html#Benutzerauthentifizierung-und-Administratorpasswort">Benutzerauthentifizierung und Administratorpasswort</a>
 <hr>
 </div>
 
 <h3 class="section">6.6 Anlegen der Authentifizierungsdatenbank</h3>
 
-<p>Nachdem alle Einstellungen in <code>config/authentication.pl</code>
+<p>Nachdem alle Einstellungen in <code>config/lx_office.conf</code>
 vorgenommen wurden, muss Lx-Office die Authentifizierungsdatenbank
 anlegen. Dieses geschieht automatisch, wenn Sie sich im
 Administrationsmodul anmelden, das unter der folgenden URL erreichbar
index a3cb96d3ea7eea10969e0a5861da4a92d34ecacd..1633263684561356f89f31156bb3d4854d6009f8 100644 (file)
@@ -3,7 +3,7 @@
 <title>Anpassung der PostgreSQL-Konfiguration - Lx-Office Installationsanleitung</title>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <meta name="description" content="Lx-Office Installationsanleitung">
-<meta name="generator" content="makeinfo 4.11">
+<meta name="generator" content="makeinfo 4.13">
 <link title="Top" rel="start" href="index.html#Top">
 <link rel="prev" href="Manuelle-Installation-des-Programmpaketes.html#Manuelle-Installation-des-Programmpaketes" title="Manuelle Installation des Programmpaketes">
 <link rel="next" href="Apache_002dKonfiguration.html#Apache_002dKonfiguration" title="Apache-Konfiguration">
 </head>
 <body>
 <div class="node">
-<p>
 <a name="Anpassung-der-PostgreSQL-Konfiguration"></a>
 <a name="Anpassung-der-PostgreSQL_002dKonfiguration"></a>
-n&auml;chstes:&nbsp;<a rel="next" accesskey="n" href="Apache_002dKonfiguration.html#Apache_002dKonfiguration">Apache-Konfiguration</a>,
-voriges:&nbsp;<a rel="previous" accesskey="p" href="Manuelle-Installation-des-Programmpaketes.html#Manuelle-Installation-des-Programmpaketes">Manuelle Installation des Programmpaketes</a>,
-aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="index.html#Top">Top</a>
+<p>
+Next:&nbsp;<a rel="next" accesskey="n" href="Apache_002dKonfiguration.html#Apache_002dKonfiguration">Apache-Konfiguration</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="Manuelle-Installation-des-Programmpaketes.html#Manuelle-Installation-des-Programmpaketes">Manuelle Installation des Programmpaketes</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="index.html#Top">Top</a>
 <hr>
 </div>
 
index 13e084c788e0207a364748ade1b34c0b3a4490aa..6af32f7223ef1d118cf957d0d501b90e830a68a3 100644 (file)
@@ -3,7 +3,7 @@
 <title>Apache-Konfiguration - Lx-Office Installationsanleitung</title>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <meta name="description" content="Lx-Office Installationsanleitung">
-<meta name="generator" content="makeinfo 4.11">
+<meta name="generator" content="makeinfo 4.13">
 <link title="Top" rel="start" href="index.html#Top">
 <link rel="prev" href="Anpassung-der-PostgreSQL_002dKonfiguration.html#Anpassung-der-PostgreSQL_002dKonfiguration" title="Anpassung der PostgreSQL-Konfiguration">
 <link rel="next" href="Benutzerauthentifizierung-und-Administratorpasswort.html#Benutzerauthentifizierung-und-Administratorpasswort" title="Benutzerauthentifizierung und Administratorpasswort">
 </head>
 <body>
 <div class="node">
-<p>
 <a name="Apache-Konfiguration"></a>
 <a name="Apache_002dKonfiguration"></a>
-n&auml;chstes:&nbsp;<a rel="next" accesskey="n" href="Benutzerauthentifizierung-und-Administratorpasswort.html#Benutzerauthentifizierung-und-Administratorpasswort">Benutzerauthentifizierung und Administratorpasswort</a>,
-voriges:&nbsp;<a rel="previous" accesskey="p" href="Anpassung-der-PostgreSQL_002dKonfiguration.html#Anpassung-der-PostgreSQL_002dKonfiguration">Anpassung der PostgreSQL-Konfiguration</a>,
-aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="index.html#Top">Top</a>
+<p>
+Next:&nbsp;<a rel="next" accesskey="n" href="Benutzerauthentifizierung-und-Administratorpasswort.html#Benutzerauthentifizierung-und-Administratorpasswort">Benutzerauthentifizierung und Administratorpasswort</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="Anpassung-der-PostgreSQL_002dKonfiguration.html#Anpassung-der-PostgreSQL_002dKonfiguration">Anpassung der PostgreSQL-Konfiguration</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="index.html#Top">Top</a>
 <hr>
 </div>
 
index a1c7204c89fc38349fc351dbe852fefc4a593489..3cb05b36214eb68b49960619e565d680e6335cb8 100644 (file)
@@ -3,7 +3,7 @@
 <title>Authentifizierungsdatenbank - Lx-Office Installationsanleitung</title>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <meta name="description" content="Lx-Office Installationsanleitung">
-<meta name="generator" content="makeinfo 4.11">
+<meta name="generator" content="makeinfo 4.13">
 <link title="Top" rel="start" href="index.html#Top">
 <link rel="up" href="Benutzerauthentifizierung-und-Administratorpasswort.html#Benutzerauthentifizierung-und-Administratorpasswort" title="Benutzerauthentifizierung und Administratorpasswort">
 <link rel="prev" href="Administratorpasswort.html#Administratorpasswort" title="Administratorpasswort">
 </head>
 <body>
 <div class="node">
-<p>
 <a name="Authentifizierungsdatenbank"></a>
-n&auml;chstes:&nbsp;<a rel="next" accesskey="n" href="Passwort_00c3_00bcberpr_00c3_00bcfung.html#Passwort_00c3_00bcberpr_00c3_00bcfung">Passwortüberprüfung</a>,
-voriges:&nbsp;<a rel="previous" accesskey="p" href="Administratorpasswort.html#Administratorpasswort">Administratorpasswort</a>,
-aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="Benutzerauthentifizierung-und-Administratorpasswort.html#Benutzerauthentifizierung-und-Administratorpasswort">Benutzerauthentifizierung und Administratorpasswort</a>
+<p>
+Next:&nbsp;<a rel="next" accesskey="n" href="Passwort_00c3_00bcberpr_00c3_00bcfung.html#Passwort_00c3_00bcberpr_00c3_00bcfung">Passwortüberprüfung</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="Administratorpasswort.html#Administratorpasswort">Administratorpasswort</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="Benutzerauthentifizierung-und-Administratorpasswort.html#Benutzerauthentifizierung-und-Administratorpasswort">Benutzerauthentifizierung und Administratorpasswort</a>
 <hr>
 </div>
 
index 79205132a292a8c9c467aa8734136e438397e808..1d273739cc2628aaa74a43cb31c061e7eed3429b 100644 (file)
@@ -3,7 +3,7 @@
 <title>Benötigte Software und Pakete - Lx-Office Installationsanleitung</title>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <meta name="description" content="Lx-Office Installationsanleitung">
-<meta name="generator" content="makeinfo 4.11">
+<meta name="generator" content="makeinfo 4.13">
 <link title="Top" rel="start" href="index.html#Top">
 <link rel="prev" href="Aktuelle-Hinweise.html#Aktuelle-Hinweise" title="Aktuelle Hinweise">
 <link rel="next" href="Manuelle-Installation-des-Programmpaketes.html#Manuelle-Installation-des-Programmpaketes" title="Manuelle Installation des Programmpaketes">
 </head>
 <body>
 <div class="node">
-<p>
 <a name="Ben%c3%b6tigte-Software-und-Pakete"></a>
 <a name="Ben_00c3_00b6tigte-Software-und-Pakete"></a>
-n&auml;chstes:&nbsp;<a rel="next" accesskey="n" href="Manuelle-Installation-des-Programmpaketes.html#Manuelle-Installation-des-Programmpaketes">Manuelle Installation des Programmpaketes</a>,
-voriges:&nbsp;<a rel="previous" accesskey="p" href="Aktuelle-Hinweise.html#Aktuelle-Hinweise">Aktuelle Hinweise</a>,
-aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="index.html#Top">Top</a>
+<p>
+Next:&nbsp;<a rel="next" accesskey="n" href="Manuelle-Installation-des-Programmpaketes.html#Manuelle-Installation-des-Programmpaketes">Manuelle Installation des Programmpaketes</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="Aktuelle-Hinweise.html#Aktuelle-Hinweise">Aktuelle Hinweise</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="index.html#Top">Top</a>
 <hr>
 </div>
 
index 82276ad4b21585996532ff61a32275421100e5c5..f7bc4cc42f31a52534d037d28123fa06e21a5430 100644 (file)
@@ -3,7 +3,7 @@
 <title>Benutzer anlegen - Lx-Office Installationsanleitung</title>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <meta name="description" content="Lx-Office Installationsanleitung">
-<meta name="generator" content="makeinfo 4.11">
+<meta name="generator" content="makeinfo 4.13">
 <link title="Top" rel="start" href="index.html#Top">
 <link rel="up" href="Benutzer_002d-und-Gruppenverwaltung.html#Benutzer_002d-und-Gruppenverwaltung" title="Benutzer- und Gruppenverwaltung">
 <link rel="prev" href="Gruppen-anlegen.html#Gruppen-anlegen" title="Gruppen anlegen">
 </head>
 <body>
 <div class="node">
-<p>
 <a name="Benutzer-anlegen"></a>
-n&auml;chstes:&nbsp;<a rel="next" accesskey="n" href="Gruppenmitgliedschaften-verwalten.html#Gruppenmitgliedschaften-verwalten">Gruppenmitgliedschaften verwalten</a>,
-voriges:&nbsp;<a rel="previous" accesskey="p" href="Gruppen-anlegen.html#Gruppen-anlegen">Gruppen anlegen</a>,
-aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="Benutzer_002d-und-Gruppenverwaltung.html#Benutzer_002d-und-Gruppenverwaltung">Benutzer- und Gruppenverwaltung</a>
+<p>
+Next:&nbsp;<a rel="next" accesskey="n" href="Gruppenmitgliedschaften-verwalten.html#Gruppenmitgliedschaften-verwalten">Gruppenmitgliedschaften verwalten</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="Gruppen-anlegen.html#Gruppen-anlegen">Gruppen anlegen</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="Benutzer_002d-und-Gruppenverwaltung.html#Benutzer_002d-und-Gruppenverwaltung">Benutzer- und Gruppenverwaltung</a>
 <hr>
 </div>
 
index 0c684f1dc4615cb048b4ca41b9ded90d2d348004..d971a57ccf266992de50385091a1ca001aeaf724 100644 (file)
@@ -3,7 +3,7 @@
 <title>Benutzer- und Gruppenverwaltung - Lx-Office Installationsanleitung</title>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <meta name="description" content="Lx-Office Installationsanleitung">
-<meta name="generator" content="makeinfo 4.11">
+<meta name="generator" content="makeinfo 4.13">
 <link title="Top" rel="start" href="index.html#Top">
 <link rel="prev" href="Benutzerauthentifizierung-und-Administratorpasswort.html#Benutzerauthentifizierung-und-Administratorpasswort" title="Benutzerauthentifizierung und Administratorpasswort">
 <link rel="next" href="OpenDocument_002dVorlagen.html#OpenDocument_002dVorlagen" title="OpenDocument-Vorlagen">
 </head>
 <body>
 <div class="node">
-<p>
 <a name="Benutzer--und-Gruppenverwaltung"></a>
 <a name="Benutzer_002d-und-Gruppenverwaltung"></a>
-n&auml;chstes:&nbsp;<a rel="next" accesskey="n" href="OpenDocument_002dVorlagen.html#OpenDocument_002dVorlagen">OpenDocument-Vorlagen</a>,
-voriges:&nbsp;<a rel="previous" accesskey="p" href="Benutzerauthentifizierung-und-Administratorpasswort.html#Benutzerauthentifizierung-und-Administratorpasswort">Benutzerauthentifizierung und Administratorpasswort</a>,
-aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="index.html#Top">Top</a>
+<p>
+Next:&nbsp;<a rel="next" accesskey="n" href="OpenDocument_002dVorlagen.html#OpenDocument_002dVorlagen">OpenDocument-Vorlagen</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="Benutzerauthentifizierung-und-Administratorpasswort.html#Benutzerauthentifizierung-und-Administratorpasswort">Benutzerauthentifizierung und Administratorpasswort</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="index.html#Top">Top</a>
 <hr>
 </div>
 
@@ -41,7 +41,7 @@ unter folgender URL finden:
    <p><a href="http://localhost/lx-erp/admin.pl">http://localhost/lx-erp/admin.pl</a>
 
    <p>Verwenden Sie zur Anmeldung das Password, dass Sie in der Datei
-<code>config/authentication.pl</code> eingetragen haben.
+<code>config/lx_office.conf</code> eingetragen haben.
 
 <ul class="menu">
 <li><a accesskey="1" href="Zusammenh_00c3_00a4nge.html#Zusammenh_00c3_00a4nge">Zusammenhänge</a>:  Übersicht über Benutzer, Gruppen, Berechtigungen und Datenbanken
index 159b6441a9c60f7b959858c9ed0141d6de516648..9495dbce911ec7da7ac0be5fd29d15b64275b6a3 100644 (file)
@@ -3,7 +3,7 @@
 <title>Benutzerauthentifizierung und Administratorpasswort - Lx-Office Installationsanleitung</title>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <meta name="description" content="Lx-Office Installationsanleitung">
-<meta name="generator" content="makeinfo 4.11">
+<meta name="generator" content="makeinfo 4.13">
 <link title="Top" rel="start" href="index.html#Top">
 <link rel="prev" href="Apache_002dKonfiguration.html#Apache_002dKonfiguration" title="Apache-Konfiguration">
 <link rel="next" href="Benutzer_002d-und-Gruppenverwaltung.html#Benutzer_002d-und-Gruppenverwaltung" title="Benutzer- und Gruppenverwaltung">
 </head>
 <body>
 <div class="node">
-<p>
 <a name="Benutzerauthentifizierung-und-Administratorpasswort"></a>
-n&auml;chstes:&nbsp;<a rel="next" accesskey="n" href="Benutzer_002d-und-Gruppenverwaltung.html#Benutzer_002d-und-Gruppenverwaltung">Benutzer- und Gruppenverwaltung</a>,
-voriges:&nbsp;<a rel="previous" accesskey="p" href="Apache_002dKonfiguration.html#Apache_002dKonfiguration">Apache-Konfiguration</a>,
-aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="index.html#Top">Top</a>
+<p>
+Next:&nbsp;<a rel="next" accesskey="n" href="Benutzer_002d-und-Gruppenverwaltung.html#Benutzer_002d-und-Gruppenverwaltung">Benutzer- und Gruppenverwaltung</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="Apache_002dKonfiguration.html#Apache_002dKonfiguration">Apache-Konfiguration</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="index.html#Top">Top</a>
 <hr>
 </div>
 
index 40515d2b0d285ddedddf8996c182372638403d22..46175cf61453ac5c8c1041b00600dde2b4fb4b88 100644 (file)
@@ -3,7 +3,7 @@
 <title>Betriebssystem - Lx-Office Installationsanleitung</title>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <meta name="description" content="Lx-Office Installationsanleitung">
-<meta name="generator" content="makeinfo 4.11">
+<meta name="generator" content="makeinfo 4.13">
 <link title="Top" rel="start" href="index.html#Top">
 <link rel="up" href="Ben_00c3_00b6tigte-Software-und-Pakete.html#Ben_00c3_00b6tigte-Software-und-Pakete" title="Benötigte Software und Pakete">
 <link rel="next" href="Pakete.html#Pakete" title="Pakete">
 </head>
 <body>
 <div class="node">
-<p>
 <a name="Betriebssystem"></a>
-n&auml;chstes:&nbsp;<a rel="next" accesskey="n" href="Pakete.html#Pakete">Pakete</a>,
-aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="Ben_00c3_00b6tigte-Software-und-Pakete.html#Ben_00c3_00b6tigte-Software-und-Pakete">Benötigte Software und Pakete</a>
+<p>
+Next:&nbsp;<a rel="next" accesskey="n" href="Pakete.html#Pakete">Pakete</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="Ben_00c3_00b6tigte-Software-und-Pakete.html#Ben_00c3_00b6tigte-Software-und-Pakete">Benötigte Software und Pakete</a>
 <hr>
 </div>
 
@@ -63,7 +63,7 @@ installieren sind. Dafür sollte es kurz nach dem Release ein eigenes .deb
 geben.
 
    <p>Alternativ dazu kann die normale Installation durchgeführt werden
-(siehe <a href="Manuelle-Installation-des-Programmpaketes.html#Manuelle-Installation-des-Programmpaketes">Manuelle Installation des Programmpaketes</a>), wenn vorher ein
+(see <a href="Manuelle-Installation-des-Programmpaketes.html#Manuelle-Installation-des-Programmpaketes">Manuelle Installation des Programmpaketes</a>), wenn vorher ein
 Kompatibilitätspaket installiert wird, das die fehlenden Pakete bereitstellt. 
 Das Paket ist auf <a href="https://sourceforge.net/projects/lx-office/files/Lx-Office%20ERP/2.6.2/">Sourceforge</a> unter dem Namen <code>lx-erp-perl-libs-compat-v2.tar.gz</code> hinterlegt.
 
@@ -75,7 +75,7 @@ Das Paket ist auf <a href="https://sourceforge.net/projects/lx-office/files/Lx-O
 
    <p><code>libbit-vector-perl libsub-exporter-perl libclone-perl libclass-factory-util-perl</code>
 
-   <p>Danach sollte der Installationscheck (siehe <a href="Pakete.html#Pakete">Pakete</a>) die enthaltenen Pakete erkennen.
+   <p>Danach sollte der Installationscheck (see <a href="Pakete.html#Pakete">Pakete</a>) die enthaltenen Pakete erkennen.
 
    </body></html>
 
index d25d81dca936bd9ded903b77741a5f2d14647fbc..b33dba39b34cc61acf1d7e05b07393be77c46863 100644 (file)
@@ -3,7 +3,7 @@
 <title>Datenbankbenutzer anlegen - Lx-Office Installationsanleitung</title>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <meta name="description" content="Lx-Office Installationsanleitung">
-<meta name="generator" content="makeinfo 4.11">
+<meta name="generator" content="makeinfo 4.13">
 <link title="Top" rel="start" href="index.html#Top">
 <link rel="up" href="Anpassung-der-PostgreSQL_002dKonfiguration.html#Anpassung-der-PostgreSQL_002dKonfiguration" title="Anpassung der PostgreSQL-Konfiguration">
 <link rel="prev" href="Erweiterung-f_00c3_00bcr-servergespeicherte-Prozeduren.html#Erweiterung-f_00c3_00bcr-servergespeicherte-Prozeduren" title="Erweiterung für servergespeicherte Prozeduren">
 </head>
 <body>
 <div class="node">
-<p>
 <a name="Datenbankbenutzer-anlegen"></a>
-voriges:&nbsp;<a rel="previous" accesskey="p" href="Erweiterung-f_00c3_00bcr-servergespeicherte-Prozeduren.html#Erweiterung-f_00c3_00bcr-servergespeicherte-Prozeduren">Erweiterung für servergespeicherte Prozeduren</a>,
-aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="Anpassung-der-PostgreSQL_002dKonfiguration.html#Anpassung-der-PostgreSQL_002dKonfiguration">Anpassung der PostgreSQL-Konfiguration</a>
+<p>
+Previous:&nbsp;<a rel="previous" accesskey="p" href="Erweiterung-f_00c3_00bcr-servergespeicherte-Prozeduren.html#Erweiterung-f_00c3_00bcr-servergespeicherte-Prozeduren">Erweiterung für servergespeicherte Prozeduren</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="Anpassung-der-PostgreSQL_002dKonfiguration.html#Anpassung-der-PostgreSQL_002dKonfiguration">Anpassung der PostgreSQL-Konfiguration</a>
 <hr>
 </div>
 
index 6b943419c2f02252c821b888eb483e1c76b48c90..c8eff511e4d618d75427961da52b93c24d8514e7 100644 (file)
@@ -3,7 +3,7 @@
 <title>Datenbanken anlegen - Lx-Office Installationsanleitung</title>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <meta name="description" content="Lx-Office Installationsanleitung">
-<meta name="generator" content="makeinfo 4.11">
+<meta name="generator" content="makeinfo 4.13">
 <link title="Top" rel="start" href="index.html#Top">
 <link rel="up" href="Benutzer_002d-und-Gruppenverwaltung.html#Benutzer_002d-und-Gruppenverwaltung" title="Benutzer- und Gruppenverwaltung">
 <link rel="prev" href="Zusammenh_00c3_00a4nge.html#Zusammenh_00c3_00a4nge" title="Zusammenhänge">
 </head>
 <body>
 <div class="node">
-<p>
 <a name="Datenbanken-anlegen"></a>
-n&auml;chstes:&nbsp;<a rel="next" accesskey="n" href="Gruppen-anlegen.html#Gruppen-anlegen">Gruppen anlegen</a>,
-voriges:&nbsp;<a rel="previous" accesskey="p" href="Zusammenh_00c3_00a4nge.html#Zusammenh_00c3_00a4nge">Zusammenhänge</a>,
-aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="Benutzer_002d-und-Gruppenverwaltung.html#Benutzer_002d-und-Gruppenverwaltung">Benutzer- und Gruppenverwaltung</a>
+<p>
+Next:&nbsp;<a rel="next" accesskey="n" href="Gruppen-anlegen.html#Gruppen-anlegen">Gruppen anlegen</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="Zusammenh_00c3_00a4nge.html#Zusammenh_00c3_00a4nge">Zusammenhänge</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="Benutzer_002d-und-Gruppenverwaltung.html#Benutzer_002d-und-Gruppenverwaltung">Benutzer- und Gruppenverwaltung</a>
 <hr>
 </div>
 
index ecf809e4d8afe461065033b2092c83d449db05fc..6fb1b36305484add3d2f99c4f6e991f229b95b8f 100644 (file)
@@ -3,7 +3,7 @@
 <title>Erweiterung für servergespeicherte Prozeduren - Lx-Office Installationsanleitung</title>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <meta name="description" content="Lx-Office Installationsanleitung">
-<meta name="generator" content="makeinfo 4.11">
+<meta name="generator" content="makeinfo 4.13">
 <link title="Top" rel="start" href="index.html#Top">
 <link rel="up" href="Anpassung-der-PostgreSQL_002dKonfiguration.html#Anpassung-der-PostgreSQL_002dKonfiguration" title="Anpassung der PostgreSQL-Konfiguration">
 <link rel="prev" href="_00c3_0084nderungen-an-Konfigurationsdateien.html#g_t_00c3_0084nderungen-an-Konfigurationsdateien" title="Änderungen an Konfigurationsdateien">
 </head>
 <body>
 <div class="node">
-<p>
 <a name="Erweiterung-f%c3%bcr-servergespeicherte-Prozeduren"></a>
 <a name="Erweiterung-f_00c3_00bcr-servergespeicherte-Prozeduren"></a>
-n&auml;chstes:&nbsp;<a rel="next" accesskey="n" href="Datenbankbenutzer-anlegen.html#Datenbankbenutzer-anlegen">Datenbankbenutzer anlegen</a>,
-voriges:&nbsp;<a rel="previous" accesskey="p" href="_00c3_0084nderungen-an-Konfigurationsdateien.html#g_t_00c3_0084nderungen-an-Konfigurationsdateien">Änderungen an Konfigurationsdateien</a>,
-aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="Anpassung-der-PostgreSQL_002dKonfiguration.html#Anpassung-der-PostgreSQL_002dKonfiguration">Anpassung der PostgreSQL-Konfiguration</a>
+<p>
+Next:&nbsp;<a rel="next" accesskey="n" href="Datenbankbenutzer-anlegen.html#Datenbankbenutzer-anlegen">Datenbankbenutzer anlegen</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="_00c3_0084nderungen-an-Konfigurationsdateien.html#g_t_00c3_0084nderungen-an-Konfigurationsdateien">Änderungen an Konfigurationsdateien</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="Anpassung-der-PostgreSQL_002dKonfiguration.html#Anpassung-der-PostgreSQL_002dKonfiguration">Anpassung der PostgreSQL-Konfiguration</a>
 <hr>
 </div>
 
index 59787fa433f57b7b801321b40c2fa125cb339750..76f4d6881bb9368415aa700df06ca33d3c1adae2 100644 (file)
@@ -3,7 +3,7 @@
 <title>Grundlagen zur Benutzerauthentifizierung - Lx-Office Installationsanleitung</title>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <meta name="description" content="Lx-Office Installationsanleitung">
-<meta name="generator" content="makeinfo 4.11">
+<meta name="generator" content="makeinfo 4.13">
 <link title="Top" rel="start" href="index.html#Top">
 <link rel="up" href="Benutzerauthentifizierung-und-Administratorpasswort.html#Benutzerauthentifizierung-und-Administratorpasswort" title="Benutzerauthentifizierung und Administratorpasswort">
 <link rel="next" href="Administratorpasswort.html#Administratorpasswort" title="Administratorpasswort">
 </head>
 <body>
 <div class="node">
-<p>
 <a name="Grundlagen-zur-Benutzerauthentifizierung"></a>
-n&auml;chstes:&nbsp;<a rel="next" accesskey="n" href="Administratorpasswort.html#Administratorpasswort">Administratorpasswort</a>,
-aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="Benutzerauthentifizierung-und-Administratorpasswort.html#Benutzerauthentifizierung-und-Administratorpasswort">Benutzerauthentifizierung und Administratorpasswort</a>
+<p>
+Next:&nbsp;<a rel="next" accesskey="n" href="Administratorpasswort.html#Administratorpasswort">Administratorpasswort</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="Benutzerauthentifizierung-und-Administratorpasswort.html#Benutzerauthentifizierung-und-Administratorpasswort">Benutzerauthentifizierung und Administratorpasswort</a>
 <hr>
 </div>
 
@@ -48,10 +48,10 @@ LDAP-Server überprüft werden.
 
    <p>Welche Art der Passwortüberprüfung Lx-Office benutzt und wie Lx-Office
 die Authentifizierungsdatenbank erreichen kann, wird in der
-Konfigurationsdatei <code>config/authentication.pl</code> festgelegt. Diese
+Konfigurationsdatei <code>config/lx_office.conf</code> festgelegt. Diese
 muss bei der Installation und bei einem Upgrade von einer Version vor
 v2.6.0 angelegt werden. Eine Beispielkonfigurationsdatei
-<code>config/authentication.pl.default</code> existiert, die als Vorlage
+<code>config/lx_office.conf.default</code> existiert, die als Vorlage
 benutzt werden kann.
 
    </body></html>
index a8e36d1d2d4e5bc1a56f780ddc8987faffe19730..4d695c81e83d94ae99be4e62463fe6abdaa9a315 100644 (file)
@@ -3,7 +3,7 @@
 <title>Gruppen anlegen - Lx-Office Installationsanleitung</title>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <meta name="description" content="Lx-Office Installationsanleitung">
-<meta name="generator" content="makeinfo 4.11">
+<meta name="generator" content="makeinfo 4.13">
 <link title="Top" rel="start" href="index.html#Top">
 <link rel="up" href="Benutzer_002d-und-Gruppenverwaltung.html#Benutzer_002d-und-Gruppenverwaltung" title="Benutzer- und Gruppenverwaltung">
 <link rel="prev" href="Datenbanken-anlegen.html#Datenbanken-anlegen" title="Datenbanken anlegen">
 </head>
 <body>
 <div class="node">
-<p>
 <a name="Gruppen-anlegen"></a>
-n&auml;chstes:&nbsp;<a rel="next" accesskey="n" href="Benutzer-anlegen.html#Benutzer-anlegen">Benutzer anlegen</a>,
-voriges:&nbsp;<a rel="previous" accesskey="p" href="Datenbanken-anlegen.html#Datenbanken-anlegen">Datenbanken anlegen</a>,
-aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="Benutzer_002d-und-Gruppenverwaltung.html#Benutzer_002d-und-Gruppenverwaltung">Benutzer- und Gruppenverwaltung</a>
+<p>
+Next:&nbsp;<a rel="next" accesskey="n" href="Benutzer-anlegen.html#Benutzer-anlegen">Benutzer anlegen</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="Datenbanken-anlegen.html#Datenbanken-anlegen">Datenbanken anlegen</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="Benutzer_002d-und-Gruppenverwaltung.html#Benutzer_002d-und-Gruppenverwaltung">Benutzer- und Gruppenverwaltung</a>
 <hr>
 </div>
 
index a8be5f938a49b2894f085ddd92321957cb733f81..9be7c420e5629847b99e7ff6082b2ff02610ab02 100644 (file)
@@ -3,7 +3,7 @@
 <title>Gruppenmitgliedschaften verwalten - Lx-Office Installationsanleitung</title>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <meta name="description" content="Lx-Office Installationsanleitung">
-<meta name="generator" content="makeinfo 4.11">
+<meta name="generator" content="makeinfo 4.13">
 <link title="Top" rel="start" href="index.html#Top">
 <link rel="up" href="Benutzer_002d-und-Gruppenverwaltung.html#Benutzer_002d-und-Gruppenverwaltung" title="Benutzer- und Gruppenverwaltung">
 <link rel="prev" href="Benutzer-anlegen.html#Benutzer-anlegen" title="Benutzer anlegen">
 </head>
 <body>
 <div class="node">
-<p>
 <a name="Gruppenmitgliedschaften-verwalten"></a>
-n&auml;chstes:&nbsp;<a rel="next" accesskey="n" href="Migration-alter-Installationen.html#Migration-alter-Installationen">Migration alter Installationen</a>,
-voriges:&nbsp;<a rel="previous" accesskey="p" href="Benutzer-anlegen.html#Benutzer-anlegen">Benutzer anlegen</a>,
-aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="Benutzer_002d-und-Gruppenverwaltung.html#Benutzer_002d-und-Gruppenverwaltung">Benutzer- und Gruppenverwaltung</a>
+<p>
+Next:&nbsp;<a rel="next" accesskey="n" href="Migration-alter-Installationen.html#Migration-alter-Installationen">Migration alter Installationen</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="Benutzer-anlegen.html#Benutzer-anlegen">Benutzer anlegen</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="Benutzer_002d-und-Gruppenverwaltung.html#Benutzer_002d-und-Gruppenverwaltung">Benutzer- und Gruppenverwaltung</a>
 <hr>
 </div>
 
index d0a11d8f7cb246154a613203e2f5bb4bf40857d1..6a754dbf3cb13b4c9e1177b5b20b8c59ee2cb9fa 100644 (file)
@@ -3,7 +3,7 @@
 <title>Lx-Office ERP verwenden - Lx-Office Installationsanleitung</title>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <meta name="description" content="Lx-Office Installationsanleitung">
-<meta name="generator" content="makeinfo 4.11">
+<meta name="generator" content="makeinfo 4.13">
 <link title="Top" rel="start" href="index.html#Top">
 <link rel="prev" href="OpenDocument_002dVorlagen.html#OpenDocument_002dVorlagen" title="OpenDocument-Vorlagen">
 <link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
 </head>
 <body>
 <div class="node">
-<p>
 <a name="Lx-Office-ERP-verwenden"></a>
 <a name="Lx_002dOffice-ERP-verwenden"></a>
-voriges:&nbsp;<a rel="previous" accesskey="p" href="OpenDocument_002dVorlagen.html#OpenDocument_002dVorlagen">OpenDocument-Vorlagen</a>,
-aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="index.html#Top">Top</a>
+<p>
+Previous:&nbsp;<a rel="previous" accesskey="p" href="OpenDocument_002dVorlagen.html#OpenDocument_002dVorlagen">OpenDocument-Vorlagen</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="index.html#Top">Top</a>
 <hr>
 </div>
 
index e3f64d5126b70f76612dd8fdd5cbe76b2f45bcc9..b541f37d3ad5944aa70aa0daa9461185e94b6f29 100644 (file)
@@ -3,7 +3,7 @@
 <title>Manuelle Installation des Programmpaketes - Lx-Office Installationsanleitung</title>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <meta name="description" content="Lx-Office Installationsanleitung">
-<meta name="generator" content="makeinfo 4.11">
+<meta name="generator" content="makeinfo 4.13">
 <link title="Top" rel="start" href="index.html#Top">
 <link rel="prev" href="Ben_00c3_00b6tigte-Software-und-Pakete.html#Ben_00c3_00b6tigte-Software-und-Pakete" title="Benötigte Software und Pakete">
 <link rel="next" href="Anpassung-der-PostgreSQL_002dKonfiguration.html#Anpassung-der-PostgreSQL_002dKonfiguration" title="Anpassung der PostgreSQL-Konfiguration">
 </head>
 <body>
 <div class="node">
-<p>
 <a name="Manuelle-Installation-des-Programmpaketes"></a>
-n&auml;chstes:&nbsp;<a rel="next" accesskey="n" href="Anpassung-der-PostgreSQL_002dKonfiguration.html#Anpassung-der-PostgreSQL_002dKonfiguration">Anpassung der PostgreSQL-Konfiguration</a>,
-voriges:&nbsp;<a rel="previous" accesskey="p" href="Ben_00c3_00b6tigte-Software-und-Pakete.html#Ben_00c3_00b6tigte-Software-und-Pakete">Benötigte Software und Pakete</a>,
-aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="index.html#Top">Top</a>
+<p>
+Next:&nbsp;<a rel="next" accesskey="n" href="Anpassung-der-PostgreSQL_002dKonfiguration.html#Anpassung-der-PostgreSQL_002dKonfiguration">Anpassung der PostgreSQL-Konfiguration</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="Ben_00c3_00b6tigte-Software-und-Pakete.html#Ben_00c3_00b6tigte-Software-und-Pakete">Benötigte Software und Pakete</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="index.html#Top">Top</a>
 <hr>
 </div>
 
index 5cd695206571fd79e193d5de1cf61f31e1634f27..666e4f58f9f7acd066cb290456526950622b1eb7 100644 (file)
@@ -3,7 +3,7 @@
 <title>Migration alter Installationen - Lx-Office Installationsanleitung</title>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <meta name="description" content="Lx-Office Installationsanleitung">
-<meta name="generator" content="makeinfo 4.11">
+<meta name="generator" content="makeinfo 4.13">
 <link title="Top" rel="start" href="index.html#Top">
 <link rel="up" href="Benutzer_002d-und-Gruppenverwaltung.html#Benutzer_002d-und-Gruppenverwaltung" title="Benutzer- und Gruppenverwaltung">
 <link rel="prev" href="Gruppenmitgliedschaften-verwalten.html#Gruppenmitgliedschaften-verwalten" title="Gruppenmitgliedschaften verwalten">
 </head>
 <body>
 <div class="node">
-<p>
 <a name="Migration-alter-Installationen"></a>
-voriges:&nbsp;<a rel="previous" accesskey="p" href="Gruppenmitgliedschaften-verwalten.html#Gruppenmitgliedschaften-verwalten">Gruppenmitgliedschaften verwalten</a>,
-aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="Benutzer_002d-und-Gruppenverwaltung.html#Benutzer_002d-und-Gruppenverwaltung">Benutzer- und Gruppenverwaltung</a>
+<p>
+Previous:&nbsp;<a rel="previous" accesskey="p" href="Gruppenmitgliedschaften-verwalten.html#Gruppenmitgliedschaften-verwalten">Gruppenmitgliedschaften verwalten</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="Benutzer_002d-und-Gruppenverwaltung.html#Benutzer_002d-und-Gruppenverwaltung">Benutzer- und Gruppenverwaltung</a>
 <hr>
 </div>
 
index 4809b753907e77b4a936b186b66ec1237a73f7bb..61a78808b92d65ab61e765ce6dcb41a53ff93a2c 100644 (file)
@@ -3,7 +3,7 @@
 <title>Name des Session-Cookies - Lx-Office Installationsanleitung</title>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <meta name="description" content="Lx-Office Installationsanleitung">
-<meta name="generator" content="makeinfo 4.11">
+<meta name="generator" content="makeinfo 4.13">
 <link title="Top" rel="start" href="index.html#Top">
 <link rel="up" href="Benutzerauthentifizierung-und-Administratorpasswort.html#Benutzerauthentifizierung-und-Administratorpasswort" title="Benutzerauthentifizierung und Administratorpasswort">
 <link rel="prev" href="Passwort_00c3_00bcberpr_00c3_00bcfung.html#Passwort_00c3_00bcberpr_00c3_00bcfung" title="Passwortüberprüfung">
 </head>
 <body>
 <div class="node">
-<p>
 <a name="Name-des-Session-Cookies"></a>
 <a name="Name-des-Session_002dCookies"></a>
-n&auml;chstes:&nbsp;<a rel="next" accesskey="n" href="Anlegen-der-Authentifizierungsdatenbank.html#Anlegen-der-Authentifizierungsdatenbank">Anlegen der Authentifizierungsdatenbank</a>,
-voriges:&nbsp;<a rel="previous" accesskey="p" href="Passwort_00c3_00bcberpr_00c3_00bcfung.html#Passwort_00c3_00bcberpr_00c3_00bcfung">Passwortüberprüfung</a>,
-aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="Benutzerauthentifizierung-und-Administratorpasswort.html#Benutzerauthentifizierung-und-Administratorpasswort">Benutzerauthentifizierung und Administratorpasswort</a>
+<p>
+Next:&nbsp;<a rel="next" accesskey="n" href="Anlegen-der-Authentifizierungsdatenbank.html#Anlegen-der-Authentifizierungsdatenbank">Anlegen der Authentifizierungsdatenbank</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="Passwort_00c3_00bcberpr_00c3_00bcfung.html#Passwort_00c3_00bcberpr_00c3_00bcfung">Passwortüberprüfung</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="Benutzerauthentifizierung-und-Administratorpasswort.html#Benutzerauthentifizierung-und-Administratorpasswort">Benutzerauthentifizierung und Administratorpasswort</a>
 <hr>
 </div>
 
index 654f3314f81f18a61621afa320c5c71d4f2dc295..0c7778827977c0a09f13d884471b7a5643b5319e 100644 (file)
@@ -3,7 +3,7 @@
 <title>OpenDocument-Vorlagen - Lx-Office Installationsanleitung</title>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <meta name="description" content="Lx-Office Installationsanleitung">
-<meta name="generator" content="makeinfo 4.11">
+<meta name="generator" content="makeinfo 4.13">
 <link title="Top" rel="start" href="index.html#Top">
 <link rel="prev" href="Benutzer_002d-und-Gruppenverwaltung.html#Benutzer_002d-und-Gruppenverwaltung" title="Benutzer- und Gruppenverwaltung">
 <link rel="next" href="Lx_002dOffice-ERP-verwenden.html#Lx_002dOffice-ERP-verwenden" title="Lx-Office ERP verwenden">
 </head>
 <body>
 <div class="node">
-<p>
 <a name="OpenDocument-Vorlagen"></a>
 <a name="OpenDocument_002dVorlagen"></a>
-n&auml;chstes:&nbsp;<a rel="next" accesskey="n" href="Lx_002dOffice-ERP-verwenden.html#Lx_002dOffice-ERP-verwenden">Lx-Office ERP verwenden</a>,
-voriges:&nbsp;<a rel="previous" accesskey="p" href="Benutzer_002d-und-Gruppenverwaltung.html#Benutzer_002d-und-Gruppenverwaltung">Benutzer- und Gruppenverwaltung</a>,
-aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="index.html#Top">Top</a>
+<p>
+Next:&nbsp;<a rel="next" accesskey="n" href="Lx_002dOffice-ERP-verwenden.html#Lx_002dOffice-ERP-verwenden">Lx-Office ERP verwenden</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="Benutzer_002d-und-Gruppenverwaltung.html#Benutzer_002d-und-Gruppenverwaltung">Benutzer- und Gruppenverwaltung</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="index.html#Top">Top</a>
 <hr>
 </div>
 
@@ -91,7 +91,7 @@ folgender Befehl auszuführen:
 
    <p>Dieses Verzeichnis, wie auch das komplette <code>users</code>-Verzeichnis, muss vom
 Webserver beschreibbar sein. Dieses wurde bereits erledigt
-(siehe <a href="Manuelle-Installation-des-Programmpaketes.html#Manuelle-Installation-des-Programmpaketes">Manuelle Installation des Programmpaketes</a>), kann aber erneut überprüft
+(see <a href="Manuelle-Installation-des-Programmpaketes.html#Manuelle-Installation-des-Programmpaketes">Manuelle Installation des Programmpaketes</a>), kann aber erneut überprüft
 werden, wenn die Konvertierung nach PDF fehlschlägt.
 
 <!--  -->
index 267b2ac7f9ec616d3feb557af712af0a7c9e343e..cfb5334da6f3780d1a161c4785dc892fe049b7b3 100644 (file)
@@ -3,7 +3,7 @@
 <title>Pakete - Lx-Office Installationsanleitung</title>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <meta name="description" content="Lx-Office Installationsanleitung">
-<meta name="generator" content="makeinfo 4.11">
+<meta name="generator" content="makeinfo 4.13">
 <link title="Top" rel="start" href="index.html#Top">
 <link rel="up" href="Ben_00c3_00b6tigte-Software-und-Pakete.html#Ben_00c3_00b6tigte-Software-und-Pakete" title="Benötigte Software und Pakete">
 <link rel="prev" href="Betriebssystem.html#Betriebssystem" title="Betriebssystem">
 </head>
 <body>
 <div class="node">
-<p>
 <a name="Pakete"></a>
-voriges:&nbsp;<a rel="previous" accesskey="p" href="Betriebssystem.html#Betriebssystem">Betriebssystem</a>,
-aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="Ben_00c3_00b6tigte-Software-und-Pakete.html#Ben_00c3_00b6tigte-Software-und-Pakete">Benötigte Software und Pakete</a>
+<p>
+Previous:&nbsp;<a rel="previous" accesskey="p" href="Betriebssystem.html#Betriebssystem">Betriebssystem</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="Ben_00c3_00b6tigte-Software-und-Pakete.html#Ben_00c3_00b6tigte-Software-und-Pakete">Benötigte Software und Pakete</a>
 <hr>
 </div>
 
@@ -43,11 +43,13 @@ einer Standard-Perl-Installation sind:
 <li>Archive::Zip
 <li>Class::Accessor
 <li>CGI::Ajax
+<li>Config::Std
 <li>DateTime
 <li>DBI
 <li>DBD::Pg
 <li>Email::Address
 <li>List::MoreUtils
+<li>Params::Validate
 <li>PDF::API2
 <li>Rose::Object
 <li>Rose::DB
@@ -80,7 +82,7 @@ und braucht nicht nachinstalliert werden.
 
    <p>Für Debian oder Ubuntu benötigen Sie diese Pakete:
 
-   <p><code>apache2 postgresql libparent-perl libarchive-zip-perl libclass-accessor-perl libdatetime-perl libdbi-perl libdbd-pg-perl libpg-perl libemail-address-perl liblist-moreutils-perl libpdf-api2-perl librose-object-perl librose-db-perl librose-db-object-perl libtemplate-perl libtext-csv-xs-perl libtext-iconv-perl liburi-perl libxml-writer-perl libyaml-perl</code>
+   <p><code>apache2 postgresql libparent-perl libarchive-zip-perl libclass-accessor-perl libdatetime-perl libdbi-perl libdbd-pg-perl libpg-perl libemail-address-perl liblist-moreutils-perl libpdf-api2-perl librose-object-perl librose-db-perl librose-db-object-perl libtemplate-perl libtext-csv-xs-perl libtext-iconv-perl liburi-perl libxml-writer-perl libyaml-perl libconfig-std-perl libparams-validate-perl</code>
 
    <p>Für Fedora Core benötigen Sie diese Pakete:
 
index 858c04721c47f7ffcb5af4482b9728e8060fb08e..b57d83365bc78b7f7de4e00049d47d2c6d770a92 100644 (file)
@@ -3,7 +3,7 @@
 <title>Passwortüberprüfung - Lx-Office Installationsanleitung</title>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <meta name="description" content="Lx-Office Installationsanleitung">
-<meta name="generator" content="makeinfo 4.11">
+<meta name="generator" content="makeinfo 4.13">
 <link title="Top" rel="start" href="index.html#Top">
 <link rel="up" href="Benutzerauthentifizierung-und-Administratorpasswort.html#Benutzerauthentifizierung-und-Administratorpasswort" title="Benutzerauthentifizierung und Administratorpasswort">
 <link rel="prev" href="Authentifizierungsdatenbank.html#Authentifizierungsdatenbank" title="Authentifizierungsdatenbank">
 </head>
 <body>
 <div class="node">
-<p>
 <a name="Passwort%c3%bcberpr%c3%bcfung"></a>
 <a name="Passwort_00c3_00bcberpr_00c3_00bcfung"></a>
-n&auml;chstes:&nbsp;<a rel="next" accesskey="n" href="Name-des-Session_002dCookies.html#Name-des-Session_002dCookies">Name des Session-Cookies</a>,
-voriges:&nbsp;<a rel="previous" accesskey="p" href="Authentifizierungsdatenbank.html#Authentifizierungsdatenbank">Authentifizierungsdatenbank</a>,
-aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="Benutzerauthentifizierung-und-Administratorpasswort.html#Benutzerauthentifizierung-und-Administratorpasswort">Benutzerauthentifizierung und Administratorpasswort</a>
+<p>
+Next:&nbsp;<a rel="next" accesskey="n" href="Name-des-Session_002dCookies.html#Name-des-Session_002dCookies">Name des Session-Cookies</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="Authentifizierungsdatenbank.html#Authentifizierungsdatenbank">Authentifizierungsdatenbank</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="Benutzerauthentifizierung-und-Administratorpasswort.html#Benutzerauthentifizierung-und-Administratorpasswort">Benutzerauthentifizierung und Administratorpasswort</a>
 <hr>
 </div>
 
index fc2c61a71029ebf096c15017f4fe3a13574998de..476a31cb68de3494294100c1bca50ac473acaf96 100644 (file)
@@ -3,7 +3,7 @@
 <title>Zeichensätze/die Verwendung von UTF-8 - Lx-Office Installationsanleitung</title>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <meta name="description" content="Lx-Office Installationsanleitung">
-<meta name="generator" content="makeinfo 4.11">
+<meta name="generator" content="makeinfo 4.13">
 <link title="Top" rel="start" href="index.html#Top">
 <link rel="up" href="Anpassung-der-PostgreSQL_002dKonfiguration.html#Anpassung-der-PostgreSQL_002dKonfiguration" title="Anpassung der PostgreSQL-Konfiguration">
 <link rel="next" href="_00c3_0084nderungen-an-Konfigurationsdateien.html#g_t_00c3_0084nderungen-an-Konfigurationsdateien" title="Änderungen an Konfigurationsdateien">
 </head>
 <body>
 <div class="node">
-<p>
 <a name="Zeichens%c3%a4tze%2fdie-Verwendung-von-UTF-8"></a>
 <a name="Zeichens_00c3_00a4tze_002fdie-Verwendung-von-UTF_002d8"></a>
-n&auml;chstes:&nbsp;<a rel="next" accesskey="n" href="_00c3_0084nderungen-an-Konfigurationsdateien.html#g_t_00c3_0084nderungen-an-Konfigurationsdateien">Änderungen an Konfigurationsdateien</a>,
-aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="Anpassung-der-PostgreSQL_002dKonfiguration.html#Anpassung-der-PostgreSQL_002dKonfiguration">Anpassung der PostgreSQL-Konfiguration</a>
+<p>
+Next:&nbsp;<a rel="next" accesskey="n" href="_00c3_0084nderungen-an-Konfigurationsdateien.html#g_t_00c3_0084nderungen-an-Konfigurationsdateien">Änderungen an Konfigurationsdateien</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="Anpassung-der-PostgreSQL_002dKonfiguration.html#Anpassung-der-PostgreSQL_002dKonfiguration">Anpassung der PostgreSQL-Konfiguration</a>
 <hr>
 </div>
 
index cead2741e060eb909c73b5eae3cac2cf8a7ab018..6346b680ed0fcbd4e8050344c22fce9afc12b39a 100644 (file)
@@ -3,7 +3,7 @@
 <title>Zusammenhänge - Lx-Office Installationsanleitung</title>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <meta name="description" content="Lx-Office Installationsanleitung">
-<meta name="generator" content="makeinfo 4.11">
+<meta name="generator" content="makeinfo 4.13">
 <link title="Top" rel="start" href="index.html#Top">
 <link rel="up" href="Benutzer_002d-und-Gruppenverwaltung.html#Benutzer_002d-und-Gruppenverwaltung" title="Benutzer- und Gruppenverwaltung">
 <link rel="next" href="Datenbanken-anlegen.html#Datenbanken-anlegen" title="Datenbanken anlegen">
 </head>
 <body>
 <div class="node">
-<p>
 <a name="Zusammenh%c3%a4nge"></a>
 <a name="Zusammenh_00c3_00a4nge"></a>
-n&auml;chstes:&nbsp;<a rel="next" accesskey="n" href="Datenbanken-anlegen.html#Datenbanken-anlegen">Datenbanken anlegen</a>,
-aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="Benutzer_002d-und-Gruppenverwaltung.html#Benutzer_002d-und-Gruppenverwaltung">Benutzer- und Gruppenverwaltung</a>
+<p>
+Next:&nbsp;<a rel="next" accesskey="n" href="Datenbanken-anlegen.html#Datenbanken-anlegen">Datenbanken anlegen</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="Benutzer_002d-und-Gruppenverwaltung.html#Benutzer_002d-und-Gruppenverwaltung">Benutzer- und Gruppenverwaltung</a>
 <hr>
 </div>
 
index 8359b1e4550673bf627d14f19eedbe32c8e64a05..9751610409e4bda0eb75f5a0cb1736982eef509d 100644 (file)
@@ -3,7 +3,7 @@
 <title>Änderungen an Konfigurationsdateien - Lx-Office Installationsanleitung</title>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <meta name="description" content="Lx-Office Installationsanleitung">
-<meta name="generator" content="makeinfo 4.11">
+<meta name="generator" content="makeinfo 4.13">
 <link title="Top" rel="start" href="index.html#Top">
 <link rel="up" href="Anpassung-der-PostgreSQL_002dKonfiguration.html#Anpassung-der-PostgreSQL_002dKonfiguration" title="Anpassung der PostgreSQL-Konfiguration">
 <link rel="prev" href="Zeichens_00c3_00a4tze_002fdie-Verwendung-von-UTF_002d8.html#Zeichens_00c3_00a4tze_002fdie-Verwendung-von-UTF_002d8" title="Zeichensätze/die Verwendung von UTF-8">
 </head>
 <body>
 <div class="node">
-<p>
 <a name="%c3%84nderungen-an-Konfigurationsdateien"></a>
 <a name="g_t_00c3_0084nderungen-an-Konfigurationsdateien"></a>
-n&auml;chstes:&nbsp;<a rel="next" accesskey="n" href="Erweiterung-f_00c3_00bcr-servergespeicherte-Prozeduren.html#Erweiterung-f_00c3_00bcr-servergespeicherte-Prozeduren">Erweiterung für servergespeicherte Prozeduren</a>,
-voriges:&nbsp;<a rel="previous" accesskey="p" href="Zeichens_00c3_00a4tze_002fdie-Verwendung-von-UTF_002d8.html#Zeichens_00c3_00a4tze_002fdie-Verwendung-von-UTF_002d8">Zeichensätze/die Verwendung von UTF-8</a>,
-aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="Anpassung-der-PostgreSQL_002dKonfiguration.html#Anpassung-der-PostgreSQL_002dKonfiguration">Anpassung der PostgreSQL-Konfiguration</a>
+<p>
+Next:&nbsp;<a rel="next" accesskey="n" href="Erweiterung-f_00c3_00bcr-servergespeicherte-Prozeduren.html#Erweiterung-f_00c3_00bcr-servergespeicherte-Prozeduren">Erweiterung für servergespeicherte Prozeduren</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="Zeichens_00c3_00a4tze_002fdie-Verwendung-von-UTF_002d8.html#Zeichens_00c3_00a4tze_002fdie-Verwendung-von-UTF_002d8">Zeichensätze/die Verwendung von UTF-8</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="Anpassung-der-PostgreSQL_002dKonfiguration.html#Anpassung-der-PostgreSQL_002dKonfiguration">Anpassung der PostgreSQL-Konfiguration</a>
 <hr>
 </div>
 
index 9a0b95d52dc1cc921fa698e4f8c104347c03d741..d7cb6d2926cf827972c65810d3cccdfc68dcc5a6 100644 (file)
@@ -3,7 +3,7 @@
 <title>Lx-Office Installationsanleitung</title>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <meta name="description" content="Lx-Office Installationsanleitung">
-<meta name="generator" content="makeinfo 4.11">
+<meta name="generator" content="makeinfo 4.13">
 <link title="Top" rel="start" href="#Top">
 <link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
 <meta http-equiv="Content-Style-Type" content="text/css">
 
 
 <div class="node">
-<p>
 <a name="Top"></a>
-n&auml;chstes:&nbsp;<a rel="next" accesskey="n" href="Aktuelle-Hinweise.html#Aktuelle-Hinweise">Aktuelle Hinweise</a>,
-aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="../index.html#dir">(dir)</a>
+<p>
+Next:&nbsp;<a rel="next" accesskey="n" href="Aktuelle-Hinweise.html#Aktuelle-Hinweise">Aktuelle Hinweise</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="../index.html#dir">(dir)</a>
 <hr>
 </div>
 
diff --git a/doc/modules/README.File-Slurp b/doc/modules/README.File-Slurp
new file mode 100644 (file)
index 0000000..1a7a9d4
--- /dev/null
@@ -0,0 +1,41 @@
+File::Slurp.pm version 0.04
+===========================
+
+This module provides subroutines to read or write entire files with a
+simple call.  It also has a subroutine for reading the list of filenames
+in a directory.
+
+In the extras/ directory you can read an article (slurp_article.pod)
+about file slurping and also run a benchmark (slurp_bench.pl) that
+compares many ways of slurping/spewing files.
+
+This module was first written and owned by David Muir Sharnoff (MUIR on
+CPAN).  I checked out his module and decided to write a new version
+which would be faster, and with many more features.  To that end, David
+graciously transfered the namespace to me.
+
+Since then, I discovered and fixed a bug in the original module's test
+script (which had only 7 tests), which is included now as t/original.t.
+This module now has 164 tests in 7 test scripts, and passes on Windows,
+Linux, Solaris and Mac OS X.
+
+There have been some comments about the somewhat unusual version number.
+The problem was that David used a future date (2004.0904) in his version
+number, and the only way I could get CPAN to index my new module was to
+make it have a version number higher than the old one, so I chose the
+9999 prefix and appended the real revision number to it.
+
+INSTALLATION
+
+To install this module type the following:
+
+   perl Makefile.PL
+   make
+   make test
+   make install
+
+COPYRIGHT AND LICENCE
+
+Copyright (C) 2003 Uri Guttman <uri@stemsystems.com>
+
+Licensed the same as Perl.
index 36f20e078afa2d20d96ce160915b9743a98e39b1..71d6e4f6cc650ec88a5cc4c81390edbba3e95346 100644 (file)
@@ -278,7 +278,7 @@ $self->{texts} = {
   'Bin From'                    => 'Quelllagerplatz',
   'Bin List'                    => 'Lagerliste',
   'Bin To'                      => 'Ziellagerplatz',
-  'Binding to the LDAP server as "#1" failed. Please check config/authentication.pl.' => 'Die Anmeldung am LDAP-Server als "#1" schlug fehl. Bitte &uuml;berpr&uuml;fen Sie die Angaben in config/authentication.pl.',
+  'Binding to the LDAP server as "#1" failed. Please check config/lx_office.conf.' => 'Die Anmeldung am LDAP-Server als "#1" schlug fehl. Bitte &uuml;berpr&uuml;fen Sie die Angaben in config/lx_office.conf.',
   'Bins saved.'                 => 'Lagerpl&auml;tze gespeichert.',
   'Bins that have been used in the past cannot be deleted anymore. For these bins there\'s no checkbox in the &quot;Delete&quot; column.' => 'Lagerpl&auml;tze, die bereits benutzt wurden, k&ouml;nnen nicht mehr gel&ouml;scht werden. Deswegen fehlt bei ihnen die Checkbox in der Spalte &quot;L&ouml;schen&quot;.',
   'Birthday'                    => 'Geburtstag',
@@ -839,7 +839,7 @@ $self->{texts} = {
   'If you chose to let Lx-Office do the migration then Lx-Office will also remove the old member file after creating a backup copy of it in the directory &quot;#1&quot;.' => 'Falls Sie sich entscheiden, Lx-Office die Migration durchführen zu lassen, so wird Lx-Office ein Backup der alten Dateien im Verzeichnis "#1" erstellen und die Dateien anschließend löschen.',
   'If you enter values for the part number and / or part description then only those bins containing parts whose part number or part description match your input will be shown.' => 'Wenn Sie f&uuml;r die Artikelnummer und / oder die Beschreibung etwas eingeben, so werden nur die Lagerpl&auml;tze angezeigt, in denen Waren eingelagert sind, die Ihre Suchbegriffe enthalten.',
   'If you see this message, you most likely just setup your LX-Office and haven\'t added any entry types. If this is the case, the option is accessible for administrators in the System menu.' => 'Wenn Sie diese Meldung sehen haben Sie wahrscheinlich ein frisches LX-Office Setup und noch keine Buchungsgruppen eingerichtet. Ein Administrator kann dies im Systemmen&uuml; erledigen.',
-  'If you want to change any of these parameters then press the &quot;Back&quot; button, edit the file &quot;config/authentication.pl&quot; and login into the admin module again.' => 'Wenn Sie einen der Parameter &auml;ndern wollen, so dr&uuml;cken Sie auf den &quot;Zur&uuml;ck&quot;-Button, bearbeiten Sie die Datei &quot;config/authentication.pl&quot;, und melden Sie sich erneut im Administrationsbereich an.',
+  'If you want to change any of these parameters then press the &quot;Back&quot; button, edit the file &quot;config/lx_office.conf&quot; and login into the admin module again.' => 'Wenn Sie einen der Parameter &auml;ndern wollen, so dr&uuml;cken Sie auf den &quot;Zur&uuml;ck&quot;-Button, bearbeiten Sie die Datei &quot;config/lx_office.conf&quot;, und melden Sie sich erneut im Administrationsbereich an.',
   'If you want to delete such a dataset you have to edit the user(s) that are using the dataset in question and have them use another dataset.' => 'Wenn Sie eine solche Datenbank l&ouml;schen wollen, so m&uuml;ssen Sie zuerst die Benutzer bearbeiten, die die fragliche Datenbank benutzen, und sie so &auml;ndern, dass sie eine andere Datenbank benutzen.',
   'If you want to set up the authentication database yourself then log in to the administration panel. Lx-Office will then create the database and tables for you.' => 'Wenn Sie die Authentifizierungsdatenbank selber einrichten wollen, so melden Sie sich an der Administrationsoberfl&auml;che an. Lx-Office wird dann die Datenbank und die Tabellen f&uuml;r Sie anlegen.',
   'If you yourself want to upgrade the installation then please read the file &quot;doc/UPGRADE&quot; and follow the steps outlined in this file.' => 'Wenn Sie selber die Aktualisierung bzw. Einrichtung &uuml;bernehmen wollen, so lesen Sie bitte die Datei &quot;doc/UPGRADE&quot; und folgen Sie den dort beschriebenen Schritten.',
@@ -1093,7 +1093,7 @@ $self->{texts} = {
   'No group has been selected, or the group does not exist anymore.' => 'Es wurde keine Gruppe ausgew&auml;hlt, oder die Gruppe wurde in der Zwischenzeit gel&ouml;scht.',
   'No groups have been added yet.' => 'Es wurden noch keine Gruppen angelegt.',
   'No licenses were found that match the search criteria.' => 'Es wurden keine Lizenzen gefunden, auf die die Suchkriterien zutreffen.',
-  'No or an unknown authenticantion module specified in "config/authentication.pl".' => 'Es wurde kein oder ein unbekanntes Authentifizierungsmodul in "config/authentication.pl" angegeben.',
+  'No or an unknown authenticantion module specified in "config/lx_office.conf".' => 'Es wurde kein oder ein unbekanntes Authentifizierungsmodul in "config/lx_office.conf" angegeben.',
   'No part was found matching the search parameters.' => 'Es wurde kein Artikel gefunden, auf den die Suchparameter zutreffen.',
   'No prices will be updated because no prices have been entered.' => 'Es werden keine Preise aktualisiert, weil keine gültigen Preisänderungen eingegeben wurden.',
   'No problems were recognized.' => 'Es wurden keine Probleme gefunden.',
@@ -1604,7 +1604,7 @@ $self->{texts} = {
   'The AP transaction #1 has been deleted.' => 'Die Kreditorenbuchung #1 wurde gelöscht.',
   'The AR transaction #1 has been deleted.' => 'Die Debitorenbuchung #1 wurde gelöscht.',
   'The GL transaction #1 has been deleted.' => 'Die Dialogbuchung #1 wurde gelöscht.',
-  'The LDAP server "#1:#2" is unreachable. Please check config/authentication.pl.' => 'Der LDAP-Server "#1:#2" ist nicht erreichbar. Bitte &uuml;berpr&uuml;fen Sie die Angaben in config/authentication.pl.',
+  'The LDAP server "#1:#2" is unreachable. Please check config/lx_office.conf.' => 'Der LDAP-Server "#1:#2" ist nicht erreichbar. Bitte &uuml;berpr&uuml;fen Sie die Angaben in config/lx_office.conf.',
   'The SEPA export has been created.' => 'Der SEPA-Export wurde erstellt',
   'The SEPA strings have been saved.' => 'Die bei SEPA-Überweisungen verwendeten Begriffe wurden gespeichert.',
   'The access rights have been saved.' => 'Die Zugriffsrechte wurden gespeichert.',
@@ -1612,7 +1612,7 @@ $self->{texts} = {
   'The account 3804 will not be added automatically.' => 'Das Konto 3804 wird nicht automatisch hinzugefügt.',
   'The assembly has been created.' => 'Das Erzeugnis wurde hergestellt.',
   'The assistant could not find anything wrong with #1. Maybe the problem has been solved in the meantime.' => 'Der Korrekturassistent konnte kein Problem bei #1 feststellen. Eventuell wurde das Problem in der Zwischenzeit bereits behoben.',
-  'The authentication configuration file &quot;config/authentication.pl&quot; does not exist. This Lx-Office installation has probably not been updated correctly yet. Please contact your administrator.' => 'Die Konfigurationsdatei f&uuml;r die Authentifizierung &quot;config/authentication.pl&quot; wurde nicht gefunden. Diese Lx-Office-Installation wurde vermutlich noch nicht vollst&auml;ndig aktualisiert oder eingerichtet. Bitte wenden Sie sich an Ihren Administrator.',
+  'The authentication configuration file &quot;config/lx_office.conf&quot; does not exist. This Lx-Office installation has probably not been updated correctly yet. Please contact your administrator.' => 'Die Konfigurationsdatei f&uuml;r die Authentifizierung &quot;config/lx_office.conf&quot; wurde nicht gefunden. Diese Lx-Office-Installation wurde vermutlich noch nicht vollst&auml;ndig aktualisiert oder eingerichtet. Bitte wenden Sie sich an Ihren Administrator.',
   'The authentication database is not reachable at the moment. Either it hasn\'t been set up yet or the database server might be down. Please contact your administrator.' => 'Die Authentifizierungsdatenbank kann momentan nicht erreicht werden. Entweder wurde sie noch nicht eingerichtet, oder der Datenbankserver antwortet nicht. Bitte wenden Sie sich an Ihren Administrator.',
   'The available options depend on the varibale type:' => 'Die verf&uuml;gbaren Optionen h&auml;ngen vom Variablentypen ab:',
   'The backup you upload here has to be a file created with &quot;pg_dump -o -Ft&quot;.' => 'Die von Ihnen hochzuladende Sicherungsdatei muss mit dem Programm und den Parametern &quot;pg_dump -o -Ft&quot; erstellt worden sein.',
@@ -1621,9 +1621,7 @@ $self->{texts} = {
   'The base unit does not exist.' => 'Die Basiseinheit existiert nicht.',
   'The base unit relations must not contain loops (e.g. by saying that unit A\'s base unit is B, B\'s base unit is C and C\'s base unit is A) in row %d.' => 'Die Beziehungen der Einheiten d&uuml;rfen keine Schleifen beinhalten (z.B. wenn gesagt wird, dass Einheit As Basiseinheit B, Bs Basiseinheit C und Cs Basiseinheit A ist) in Zeile %d.',
   'The columns &quot;Dunning Duedate&quot;, &quot;Total Fees&quot; and &quot;Interest&quot; show data for the previous dunning created for this invoice.' => 'Die Spalten &quot;Zahlbar bis&quot;, &quot;Kumulierte Geb&uuml;hren&quot; und &quot;Zinsen&quot; zeigen Daten der letzten f&uuml;r diese Rechnung erzeugten Mahnung.',
-  'The config file "config/authentication.pl" contained invalid Perl code:' => 'Die Konfigurationsdatei "config/authentication.pl" enthielt ung&uuml;tigen Perl-Code:',
-  'The config file "config/authentication.pl" was not found.' => 'Die Konfigurationsdatei "config/authentication.pl" wurde nicht gefunden.',
-  'The connection to the LDAP server cannot be encrypted (SSL/TLS startup failure). Please check config/authentication.pl.' => 'Die Verbindung zum LDAP-Server kann nicht verschl&uuml;sselt werden (Fehler bei SSL/TLS-Initialisierung). Bitte &uuml;berpr&uuml;fen Sie die Angaben in config/authentication.pl.',
+  'The connection to the LDAP server cannot be encrypted (SSL/TLS startup failure). Please check config/lx_office.conf.' => 'Die Verbindung zum LDAP-Server kann nicht verschl&uuml;sselt werden (Fehler bei SSL/TLS-Initialisierung). Bitte &uuml;berpr&uuml;fen Sie die Angaben in config/lx_office.conf.',
   'The connection to the authentication database failed:' => 'Die Verbindung zur Authentifizierungsdatenbank schlug fehl:',
   'The connection to the database could not be established.' => 'Die Verbindung zur Datenbank konnte nicht hergestellt werden.',
   'The connection to the template database failed:' => 'Die Verbindung zur Vorlagendatenbank schlug fehl:',
@@ -1992,10 +1990,10 @@ $self->{texts} = {
   'close'                       => 'schließen',
   'closed'                      => 'geschlossen',
   'companylogo_subtitle'        => 'Lizenziert f&uuml;r',
-  'config/authentication.pl: Key "DB_config" is missing.' => 'config/authentication.pl: Das Schl&uuml;sselwort "DB_config" fehlt.',
-  'config/authentication.pl: Key "LDAP_config" is missing.' => 'config/authentication.pl: Der Schl&uuml;ssel "LDAP_config" fehlt.',
-  'config/authentication.pl: Missing parameters in "DB_config". Required parameters are "host", "db" and "user".' => 'config/authentication.pl: Fehlende Parameter in "DB_config". Ben&ouml;tigte Parameter sind "host", "db" und "user".',
-  'config/authentication.pl: Missing parameters in "LDAP_config". Required parameters are "host", "attribute" and "base_dn".' => 'config/authentication.pl: Fehlende Parameter in "LDAP_config". Ben&ouml;tigt werden "host", "attribute" und "base_dn".',
+  'config/lx_office.conf: Key "DB_config" is missing.' => 'config/lx_office.conf: Das Schl&uuml;sselwort "DB_config" fehlt.',
+  'config/lx_office.conf: Key "authentication/ldap" is missing.' => 'config/lx_office.conf: Der Schlüssel "authentication/ldap" fehlt.',
+  'config/lx_office.conf: Missing parameters in "authentication/database". Required parameters are "host", "db" and "user".' => 'config/lx_office.conf: Fehlende Parameter in "authentication/database". Ben&ouml;tigte Parameter sind "host", "db" und "user".',
+  'config/lx_office.conf: Missing parameters in "authentication/ldap". Required parameters are "host", "attribute" and "base_dn".' => 'config/lx_office.conf: Fehlende Parameter in "authentication/ldap". Benötigt werden "host", "attribute" und "base_dn".',
   'continue'                    => 'weiter',
   'correction'                  => 'Korrektur',
   'cp_greeting to cp_gender migration' => 'Datenumwandlung von Titel nach Geschlecht (cp_greeting to cp_gender)',
index 5d282030ee992cefa97ae79148369d6ca55824ed..ac569e813a2cab0a6830243dc5838d3e140be970 100644 (file)
@@ -306,20 +306,42 @@ function getAllUnits($db,$type) {
 
 function anmelden($login=false,$pwd=false) {
     ini_set("gc_maxlifetime","3600");
-    $tmp = @file_get_contents("../config/authentication.pl");
-    preg_match("/'db'[ ]*=> '(.+)'/",$tmp,$hits);
-    $dbname=$hits[1];
-    preg_match("/'password'[ ]*=> '(.+)'/",$tmp,$hits);
-    $dbpasswd=$hits[1];
-    preg_match("/'user'[ ]*=> '(.+)'/",$tmp,$hits);
-    $dbuser=$hits[1];
-    preg_match("/'host'[ ]*=> '(.+)'/",$tmp,$hits);
-    $dbhost=($hits[1])?$hits[1]:"localhost";
-    preg_match("/'port'[ ]*=> '?(.+)'?/",$tmp,$hits);
-    $dbport=($hits[1])?$hits[1]:"5432";
-    preg_match("/[ ]*\\\$self->\{cookie_name\}[ ]*=[ ]*'(.+)'/",$tmp,$hits);
-    $cookiename=$hits[1];
+    if (file_exists("../config/lx_office.conf")) {
+        $lxo = fopen("../config/lx_office.conf","r");
+    } else if (file_exists("../config/lx_office.conf.default")) {
+        $lxo = fopen("../config/lx_office.conf.default","r");
+    } else {
+        return false;
+    }
+    $dbsec = false;
+    $tmp = fgets($lxo,512);
+    while (!feof($lxo)) {
+       if (preg_match("/^[\s]*#/",$tmp)) {
+            $tmp = fgets($lxo,512);
+            continue;
+       }
+       if ($dbsec) {
+            preg_match("/db[ ]*= (.+)/",$tmp,$hits);
+            if ($hits[1]) $dbname=$hits[1];
+            preg_match("/password[ ]*= (.+)/",$tmp,$hits);
+            if ($hits[1]) $dbpasswd=$hits[1];
+            preg_match("/user[ ]*= (.+)/",$tmp,$hits);
+            if ($hits[1]) $dbuser=$hits[1];
+            preg_match("/host[ ]*= (.+)/",$tmp,$hits);
+            if ($hits[1]) $dbhost=($hits[1])?$hits[1]:"localhost";
+            preg_match("/port[ ]*= (.+)/",$tmp,$hits);
+            if ($hits[1]) $dbport=($hits[1])?$hits[1]:"5432";
+            if (preg_match("/\[[a-z]+/",$tmp)) break;
+            $tmp = fgets($lxo,512);
+            continue;
+       }
+       preg_match("/[ ]*cookie_name[ ]*=[ ]*(.+)/",$tmp,$hits);
+       if ($hits[1]) $cookiename=$hits[1];
+       if (preg_match("!\[authentication/database\]!",$tmp)) $dbsec = true;
+       $tmp = fgets($lxo,512);
+    }
     if (!$cookiename) $cookiename='lx_office_erp_session_id';
+    $cookie=$_COOKIE[$cookiename];
     if ($login) {
         $auth=authuser($dbhost,$dbport,$dbuser,$dbpasswd,$dbname,false,$login,$pwd);
     } else {
diff --git a/modules/fallback/File/Slurp.pm b/modules/fallback/File/Slurp.pm
new file mode 100644 (file)
index 0000000..0aad7ed
--- /dev/null
@@ -0,0 +1,742 @@
+package File::Slurp;
+
+use strict;
+
+use Carp ;
+use POSIX qw( :fcntl_h ) ;
+use Fcntl qw( :DEFAULT ) ;
+use Symbol ;
+
+my $is_win32 = $^O =~ /win32/i ;
+
+# Install subs for various constants that aren't set in older perls
+# (< 5.005).  Fcntl on old perls uses Exporter to define subs without a
+# () prototype These can't be overridden with the constant pragma or
+# we get a prototype mismatch.  Hence this less than aesthetically
+# appealing BEGIN block:
+
+BEGIN {
+       unless( eval { defined SEEK_SET() } ) {
+               *SEEK_SET = sub { 0 };
+               *SEEK_CUR = sub { 1 };
+               *SEEK_END = sub { 2 };
+       }
+
+       unless( eval { defined O_BINARY() } ) {
+               *O_BINARY = sub { 0 };
+               *O_RDONLY = sub { 0 };
+               *O_WRONLY = sub { 1 };
+       }
+
+       unless ( eval { defined O_APPEND() } ) {
+
+               if ( $^O =~ /olaris/ ) {
+                       *O_APPEND = sub { 8 };
+                       *O_CREAT = sub { 256 };
+                       *O_EXCL = sub { 1024 };
+               }
+               elsif ( $^O =~ /inux/ ) {
+                       *O_APPEND = sub { 1024 };
+                       *O_CREAT = sub { 64 };
+                       *O_EXCL = sub { 128 };
+               }
+               elsif ( $^O =~ /BSD/i ) {
+                       *O_APPEND = sub { 8 };
+                       *O_CREAT = sub { 512 };
+                       *O_EXCL = sub { 2048 };
+               }
+       }
+}
+
+# print "OS [$^O]\n" ;
+
+# print "O_BINARY = ", O_BINARY(), "\n" ;
+# print "O_RDONLY = ", O_RDONLY(), "\n" ;
+# print "O_WRONLY = ", O_WRONLY(), "\n" ;
+# print "O_APPEND = ", O_APPEND(), "\n" ;
+# print "O_CREAT   ", O_CREAT(), "\n" ;
+# print "O_EXCL   ", O_EXCL(), "\n" ;
+
+use base 'Exporter' ;
+use vars qw( %EXPORT_TAGS @EXPORT_OK $VERSION @EXPORT ) ;
+
+%EXPORT_TAGS = ( 'all' => [
+       qw( read_file write_file overwrite_file append_file read_dir ) ] ) ;
+
+@EXPORT = ( @{ $EXPORT_TAGS{'all'} } );
+@EXPORT_OK = qw( slurp ) ;
+
+$VERSION = '9999.13';
+
+*slurp = \&read_file ;
+
+sub read_file {
+
+       my( $file_name, %args ) = @_ ;
+
+# set the buffer to either the passed in one or ours and init it to the null
+# string
+
+       my $buf ;
+       my $buf_ref = $args{'buf_ref'} || \$buf ;
+       ${$buf_ref} = '' ;
+
+       my( $read_fh, $size_left, $blk_size ) ;
+
+# check if we are reading from a handle (glob ref or IO:: object)
+
+       if ( ref $file_name ) {
+
+# slurping a handle so use it and don't open anything.
+# set the block size so we know it is a handle and read that amount
+
+               $read_fh = $file_name ;
+               $blk_size = $args{'blk_size'} || 1024 * 1024 ;
+               $size_left = $blk_size ;
+
+# DEEP DARK MAGIC. this checks the UNTAINT IO flag of a
+# glob/handle. only the DATA handle is untainted (since it is from
+# trusted data in the source file). this allows us to test if this is
+# the DATA handle and then to do a sysseek to make sure it gets
+# slurped correctly. on some systems, the buffered i/o pointer is not
+# left at the same place as the fd pointer. this sysseek makes them
+# the same so slurping with sysread will work.
+
+               eval{ require B } ;
+
+               if ( $@ ) {
+
+                       @_ = ( \%args, <<ERR ) ;
+Can't find B.pm with this Perl: $!.
+That module is needed to slurp the DATA handle.
+ERR
+                       goto &_error ;
+               }
+
+               if ( B::svref_2object( $read_fh )->IO->IoFLAGS & 16 ) {
+
+# set the seek position to the current tell.
+
+                       sysseek( $read_fh, tell( $read_fh ), SEEK_SET ) ||
+                               croak "sysseek $!" ;
+               }
+       }
+       else {
+
+# a regular file. set the sysopen mode
+
+               my $mode = O_RDONLY ;
+
+#printf "RD: BINARY %x MODE %x\n", O_BINARY, $mode ;
+
+# open the file and handle any error
+
+               $read_fh = gensym ;
+               unless ( sysopen( $read_fh, $file_name, $mode ) ) {
+                       @_ = ( \%args, "read_file '$file_name' - sysopen: $!");
+                       goto &_error ;
+               }
+
+               binmode($read_fh, $args{'binmode'}) if $args{'binmode'};
+
+# get the size of the file for use in the read loop
+
+               $size_left = -s $read_fh ;
+
+               unless( $size_left ) {
+
+                       $blk_size = $args{'blk_size'} || 1024 * 1024 ;
+                       $size_left = $blk_size ;
+               }
+       }
+
+# infinite read loop. we exit when we are done slurping
+
+       while( 1 ) {
+
+# do the read and see how much we got
+
+               my $read_cnt = sysread( $read_fh, ${$buf_ref},
+                               $size_left, length ${$buf_ref} ) ;
+
+               if ( defined $read_cnt ) {
+
+# good read. see if we hit EOF (nothing left to read)
+
+                       last if $read_cnt == 0 ;
+
+# loop if we are slurping a handle. we don't track $size_left then.
+
+                       next if $blk_size ;
+
+# count down how much we read and loop if we have more to read.
+                       $size_left -= $read_cnt ;
+                       last if $size_left <= 0 ;
+                       next ;
+               }
+
+# handle the read error
+
+               @_ = ( \%args, "read_file '$file_name' - sysread: $!");
+               goto &_error ;
+       }
+
+# fix up cr/lf to be a newline if this is a windows text file
+
+       ${$buf_ref} =~ s/\015\012/\n/g if $is_win32 && !$args{'binmode'} ;
+
+# this is the 5 returns in a row. each handles one possible
+# combination of caller context and requested return type
+
+       my $sep = $/ ;
+       $sep = '\n\n+' if defined $sep && $sep eq '' ;
+
+# caller wants to get an array ref of lines
+
+# this split doesn't work since it tries to use variable length lookbehind
+# the m// line works.
+#      return [ split( m|(?<=$sep)|, ${$buf_ref} ) ] if $args{'array_ref'}  ;
+       return [ length(${$buf_ref}) ? ${$buf_ref} =~ /(.*?$sep|.+)/sg : () ]
+               if $args{'array_ref'}  ;
+
+# caller wants a list of lines (normal list context)
+
+# same problem with this split as before.
+#      return split( m|(?<=$sep)|, ${$buf_ref} ) if wantarray ;
+       return length(${$buf_ref}) ? ${$buf_ref} =~ /(.*?$sep|.+)/sg : ()
+               if wantarray ;
+
+# caller wants a scalar ref to the slurped text
+
+       return $buf_ref if $args{'scalar_ref'} ;
+
+# caller wants a scalar with the slurped text (normal scalar context)
+
+       return ${$buf_ref} if defined wantarray ;
+
+# caller passed in an i/o buffer by reference (normal void context)
+
+       return ;
+}
+
+sub write_file {
+
+       my $file_name = shift ;
+
+# get the optional argument hash ref from @_ or an empty hash ref.
+
+       my $args = ( ref $_[0] eq 'HASH' ) ? shift : {} ;
+
+       my( $buf_ref, $write_fh, $no_truncate, $orig_file_name, $data_is_ref ) ;
+
+# get the buffer ref - it depends on how the data is passed into write_file
+# after this if/else $buf_ref will have a scalar ref to the data.
+
+       if ( ref $args->{'buf_ref'} eq 'SCALAR' ) {
+
+# a scalar ref passed in %args has the data
+# note that the data was passed by ref
+
+               $buf_ref = $args->{'buf_ref'} ;
+               $data_is_ref = 1 ;
+       }
+       elsif ( ref $_[0] eq 'SCALAR' ) {
+
+# the first value in @_ is the scalar ref to the data
+# note that the data was passed by ref
+
+               $buf_ref = shift ;
+               $data_is_ref = 1 ;
+       }
+       elsif ( ref $_[0] eq 'ARRAY' ) {
+
+# the first value in @_ is the array ref to the data so join it.
+
+               ${$buf_ref} = join '', @{$_[0]} ;
+       }
+       else {
+
+# good old @_ has all the data so join it.
+
+               ${$buf_ref} = join '', @_ ;
+       }
+
+# see if we were passed a open handle to spew to.
+
+       if ( ref $file_name ) {
+
+# we have a handle. make sure we don't call truncate on it.
+
+               $write_fh = $file_name ;
+               $no_truncate = 1 ;
+       }
+       else {
+
+# spew to regular file.
+
+               if ( $args->{'atomic'} ) {
+
+# in atomic mode, we spew to a temp file so make one and save the original
+# file name.
+                       $orig_file_name = $file_name ;
+                       $file_name .= ".$$" ;
+               }
+
+# set the mode for the sysopen
+
+               my $mode = O_WRONLY | O_CREAT ;
+               $mode |= O_APPEND if $args->{'append'} ;
+               $mode |= O_EXCL if $args->{'no_clobber'} ;
+
+#printf "WR: BINARY %x MODE %x\n", O_BINARY, $mode ;
+
+# open the file and handle any error.
+
+               $write_fh = gensym ;
+               unless ( sysopen( $write_fh, $file_name, $mode ) ) {
+                       @_ = ( $args, "write_file '$file_name' - sysopen: $!");
+                       goto &_error ;
+               }
+
+               binmode($write_fh, $args->{'binmode'}) if $args->{'binmode'};
+       }
+
+       sysseek( $write_fh, 0, SEEK_END ) if $args->{'append'} ;
+
+
+#print 'WR before data ', unpack( 'H*', ${$buf_ref}), "\n" ;
+
+# fix up newline to write cr/lf if this is a windows text file
+
+       if ( $is_win32 && !$args->{'binmode'} ) {
+
+# copy the write data if it was passed by ref so we don't clobber the
+# caller's data
+               $buf_ref = \do{ my $copy = ${$buf_ref}; } if $data_is_ref ;
+               ${$buf_ref} =~ s/\n/\015\012/g ;
+       }
+
+#print 'after data ', unpack( 'H*', ${$buf_ref}), "\n" ;
+
+# get the size of how much we are writing and init the offset into that buffer
+
+       my $size_left = length( ${$buf_ref} ) ;
+       my $offset = 0 ;
+
+# loop until we have no more data left to write
+
+       do {
+
+# do the write and track how much we just wrote
+
+               my $write_cnt = syswrite( $write_fh, ${$buf_ref},
+                               $size_left, $offset ) ;
+
+               unless ( defined $write_cnt ) {
+
+# the write failed
+                       @_ = ( $args, "write_file '$file_name' - syswrite: $!");
+                       goto &_error ;
+               }
+
+# track much left to write and where to write from in the buffer
+
+               $size_left -= $write_cnt ;
+               $offset += $write_cnt ;
+
+       } while( $size_left > 0 ) ;
+
+# we truncate regular files in case we overwrite a long file with a shorter file
+# so seek to the current position to get it (same as tell()).
+
+       truncate( $write_fh,
+                 sysseek( $write_fh, 0, SEEK_CUR ) ) unless $no_truncate ;
+
+       close( $write_fh ) ;
+
+# handle the atomic mode - move the temp file to the original filename.
+
+       rename( $file_name, $orig_file_name ) if $args->{'atomic'} ;
+
+       return 1 ;
+}
+
+# this is for backwards compatibility with the previous File::Slurp module. 
+# write_file always overwrites an existing file
+
+*overwrite_file = \&write_file ;
+
+# the current write_file has an append mode so we use that. this
+# supports the same API with an optional second argument which is a
+# hash ref of options.
+
+sub append_file {
+
+# get the optional args hash ref
+       my $args = $_[1] ;
+       if ( ref $args eq 'HASH' ) {
+
+# we were passed an args ref so just mark the append mode
+
+               $args->{append} = 1 ;
+       }
+       else {
+
+# no args hash so insert one with the append mode
+
+               splice( @_, 1, 0, { append => 1 } ) ;
+       }
+
+# magic goto the main write_file sub. this overlays the sub without touching
+# the stack or @_
+
+       goto &write_file
+}
+
+# basic wrapper around opendir/readdir
+
+sub read_dir {
+
+       my ($dir, %args ) = @_;
+
+# this handle will be destroyed upon return
+
+       local(*DIRH);
+
+# open the dir and handle any errors
+
+       unless ( opendir( DIRH, $dir ) ) {
+
+               @_ = ( \%args, "read_dir '$dir' - opendir: $!" ) ;
+               goto &_error ;
+       }
+
+       my @dir_entries = readdir(DIRH) ;
+
+       @dir_entries = grep( $_ ne "." && $_ ne "..", @dir_entries )
+               unless $args{'keep_dot_dot'} ;
+
+       return @dir_entries if wantarray ;
+       return \@dir_entries ;
+}
+
+# error handling section
+#
+# all the error handling uses magic goto so the caller will get the
+# error message as if from their code and not this module. if we just
+# did a call on the error code, the carp/croak would report it from
+# this module since the error sub is one level down on the call stack
+# from read_file/write_file/read_dir.
+
+
+my %err_func = (
+       'carp'  => \&carp,
+       'croak' => \&croak,
+) ;
+
+sub _error {
+
+       my( $args, $err_msg ) = @_ ;
+
+# get the error function to use
+
+       my $func = $err_func{ $args->{'err_mode'} || 'croak' } ;
+
+# if we didn't find it in our error function hash, they must have set
+# it to quiet and we don't do anything.
+
+       return unless $func ;
+
+# call the carp/croak function
+
+       $func->($err_msg) ;
+
+# return a hard undef (in list context this will be a single value of
+# undef which is not a legal in-band value)
+
+       return undef ;
+}
+
+1;
+__END__
+
+=head1 NAME
+
+File::Slurp - Efficient Reading/Writing of Complete Files
+
+=head1 SYNOPSIS
+
+  use File::Slurp;
+
+  my $text = read_file( 'filename' ) ;
+  my @lines = read_file( 'filename' ) ;
+
+  write_file( 'filename', @lines ) ;
+
+  use File::Slurp qw( slurp ) ;
+
+  my $text = slurp( 'filename' ) ;
+
+
+=head1 DESCRIPTION
+
+This module provides subs that allow you to read or write entire files
+with one simple call. They are designed to be simple to use, have
+flexible ways to pass in or get the file contents and to be very
+efficient.  There is also a sub to read in all the files in a
+directory other than C<.> and C<..>
+
+These slurp/spew subs work for files, pipes and
+sockets, and stdio, pseudo-files, and DATA.
+
+=head2 B<read_file>
+
+This sub reads in an entire file and returns its contents to the
+caller. In list context it will return a list of lines (using the
+current value of $/ as the separator including support for paragraph
+mode when it is set to ''). In scalar context it returns the entire
+file as a single scalar.
+
+  my $text = read_file( 'filename' ) ;
+  my @lines = read_file( 'filename' ) ;
+
+The first argument to C<read_file> is the filename and the rest of the
+arguments are key/value pairs which are optional and which modify the
+behavior of the call. Other than binmode the options all control how
+the slurped file is returned to the caller.
+
+If the first argument is a file handle reference or I/O object (if ref
+is true), then that handle is slurped in. This mode is supported so
+you slurp handles such as C<DATA>, C<STDIN>. See the test handle.t
+for an example that does C<open( '-|' )> and child process spews data
+to the parant which slurps it in.  All of the options that control how
+the data is returned to the caller still work in this case.
+
+NOTE: as of version 9999.06, read_file works correctly on the C<DATA>
+handle. It used to need a sysseek workaround but that is now handled
+when needed by the module itself.
+
+You can optionally request that C<slurp()> is exported to your code. This
+is an alias for read_file and is meant to be forward compatible with
+Perl 6 (which will have slurp() built-in).
+
+The options are:
+
+=head3 binmode
+
+If you set the binmode option, then the file will be slurped in binary
+mode.
+
+       my $bin_data = read_file( $bin_file, binmode => ':raw' ) ;
+       # Or
+       my $bin_data = read_file( $bin_file, binmode => ':utf8' ) ;
+
+=head3 array_ref
+
+If this boolean option is set, the return value (only in scalar
+context) will be an array reference which contains the lines of the
+slurped file. The following two calls are equivalent:
+
+       my $lines_ref = read_file( $bin_file, array_ref => 1 ) ;
+       my $lines_ref = [ read_file( $bin_file ) ] ;
+
+=head3 scalar_ref
+
+If this boolean option is set, the return value (only in scalar
+context) will be an scalar reference to a string which is the contents
+of the slurped file. This will usually be faster than returning the
+plain scalar.
+
+       my $text_ref = read_file( $bin_file, scalar_ref => 1 ) ;
+
+=head3 buf_ref
+
+You can use this option to pass in a scalar reference and the slurped
+file contents will be stored in the scalar. This can be used in
+conjunction with any of the other options.
+
+       my $text_ref = read_file( $bin_file, buf_ref => \$buffer,
+                                            array_ref => 1 ) ;
+       my @lines = read_file( $bin_file, buf_ref => \$buffer ) ;
+
+=head3 blk_size
+
+You can use this option to set the block size used when slurping from an already open handle (like \*STDIN). It defaults to 1MB.
+
+       my $text_ref = read_file( $bin_file, blk_size => 10_000_000,
+                                            array_ref => 1 ) ;
+
+=head3 err_mode
+
+You can use this option to control how read_file behaves when an error
+occurs. This option defaults to 'croak'. You can set it to 'carp' or
+to 'quiet to have no error handling. This code wants to carp and then
+read abother file if it fails.
+
+       my $text_ref = read_file( $file, err_mode => 'carp' ) ;
+       unless ( $text_ref ) {
+
+               # read a different file but croak if not found
+               $text_ref = read_file( $another_file ) ;
+       }
+       
+       # process ${$text_ref}
+
+=head2 B<write_file>
+
+This sub writes out an entire file in one call.
+
+  write_file( 'filename', @data ) ;
+
+The first argument to C<write_file> is the filename. The next argument
+is an optional hash reference and it contains key/values that can
+modify the behavior of C<write_file>. The rest of the argument list is
+the data to be written to the file.
+
+  write_file( 'filename', {append => 1 }, @data ) ;
+  write_file( 'filename', {binmode => ':raw' }, $buffer ) ;
+
+As a shortcut if the first data argument is a scalar or array
+reference, it is used as the only data to be written to the file. Any
+following arguments in @_ are ignored. This is a faster way to pass in
+the output to be written to the file and is equivilent to the
+C<buf_ref> option. These following pairs are equivilent but the pass
+by reference call will be faster in most cases (especially with larger
+files).
+
+  write_file( 'filename', \$buffer ) ;
+  write_file( 'filename', $buffer ) ;
+
+  write_file( 'filename', \@lines ) ;
+  write_file( 'filename', @lines ) ;
+
+If the first argument is a file handle reference or I/O object (if ref
+is true), then that handle is slurped in. This mode is supported so
+you spew to handles such as \*STDOUT. See the test handle.t for an
+example that does C<open( '-|' )> and child process spews data to the
+parant which slurps it in.  All of the options that control how the
+data is passes into C<write_file> still work in this case.
+
+C<write_file> returns 1 upon successfully writing the file or undef if
+it encountered an error.
+
+The options are:
+
+=head3 binmode
+
+If you set the binmode option, then the file will be written in binary
+mode.
+
+       write_file( $bin_file, {binmode => ':raw'}, @data ) ;
+       # Or
+       write_file( $bin_file, {binmode => ':utf8'}, @data ) ;
+
+=head3 buf_ref
+
+You can use this option to pass in a scalar reference which has the
+data to be written. If this is set then any data arguments (including
+the scalar reference shortcut) in @_ will be ignored. These are
+equivilent:
+
+       write_file( $bin_file, { buf_ref => \$buffer } ) ;
+       write_file( $bin_file, \$buffer ) ;
+       write_file( $bin_file, $buffer ) ;
+
+=head3 atomic
+
+If you set this boolean option, the file will be written to in an
+atomic fashion. A temporary file name is created by appending the pid
+($$) to the file name argument and that file is spewed to. After the
+file is closed it is renamed to the original file name (and rename is
+an atomic operation on most OS's). If the program using this were to
+crash in the middle of this, then the file with the pid suffix could
+be left behind.
+
+=head3 append
+
+If you set this boolean option, the data will be written at the end of
+the current file.
+
+       write_file( $file, {append => 1}, @data ) ;
+
+C<write_file> croaks if it cannot open the file. It returns true if it
+succeeded in writing out the file and undef if there was an
+error. (Yes, I know if it croaks it can't return anything but that is
+for when I add the options to select the error handling mode).
+
+=head3 no_clobber
+
+If you set this boolean option, an existing file will not be overwritten.
+
+       write_file( $file, {no_clobber => 1}, @data ) ;
+
+=head3 err_mode
+
+You can use this option to control how C<write_file> behaves when an
+error occurs. This option defaults to 'croak'. You can set it to
+'carp' or to 'quiet' to have no error handling other than the return
+value. If the first call to C<write_file> fails it will carp and then
+write to another file. If the second call to C<write_file> fails, it
+will croak.
+
+       unless ( write_file( $file, { err_mode => 'carp', \$data ) ;
+
+               # write a different file but croak if not found
+               write_file( $other_file, \$data ) ;
+       }
+
+=head2 overwrite_file
+
+This sub is just a typeglob alias to write_file since write_file
+always overwrites an existing file. This sub is supported for
+backwards compatibility with the original version of this module. See
+write_file for its API and behavior.
+
+=head2 append_file
+
+This sub will write its data to the end of the file. It is a wrapper
+around write_file and it has the same API so see that for the full
+documentation. These calls are equivilent:
+
+       append_file( $file, @data ) ;
+       write_file( $file, {append => 1}, @data ) ;
+
+=head2 read_dir
+
+This sub reads all the file names from directory and returns them to
+the caller but C<.> and C<..> are removed by default.
+
+       my @files = read_dir( '/path/to/dir' ) ;
+
+It croaks if it cannot open the directory.
+
+In a list context C<read_dir> returns a list of the entries in the
+directory. In a scalar context it returns an array reference which has
+the entries.
+
+=head3 keep_dot_dot
+
+If this boolean option is set, C<.> and C<..> are not removed from the
+list of files.
+
+       my @all_files = read_dir( '/path/to/dir', keep_dot_dot => 1 ) ;
+
+=head2 EXPORT
+
+  read_file write_file overwrite_file append_file read_dir
+
+=head2 SEE ALSO
+
+An article on file slurping in extras/slurp_article.pod. There is
+also a benchmarking script in extras/slurp_bench.pl.
+
+=head2 BUGS
+
+If run under Perl 5.004, slurping from the DATA handle will fail as
+that requires B.pm which didn't get into core until 5.005.
+
+=head1 AUTHOR
+
+Uri Guttman, E<lt>uri@stemsystems.comE<gt>
+
+=cut
index 4fcb030af9708ecd740853929a4b0c731f80e651..84129c29f3388e172d6087c0f8176b6f52ce7cdc 100755 (executable)
@@ -79,10 +79,12 @@ for my $useline (keys %uselines) {
   next if $useline =~ /^most and offer that in a small/; # YAML
 
   my $version = Module::CoreList->first_release($module);
-  $modules{$module} = $supplied{$module}     ? 'included'
-                    : $version               ? sprintf '%2.6f', $version
-                    : is_documented($module) ? 'required'
-                    : '!missing';
+  $modules{$module} = { status => $supplied{$module}     ? 'included'
+                                : $version               ? sprintf '%2.6f', $version
+                                : is_documented($module) ? 'required'
+                                : '!missing',
+                        files  => $uselines{$useline},
+                      };
 
   # build requirement tree
   for my $file (@{ $uselines{$useline} }) {
@@ -99,19 +101,21 @@ while ($changed) {
   $changed = 0;
   for my $src_module (keys %requires) {
     for my $dst_module (keys %{ $requires{$src_module} }) {
-      if (   $modules{$src_module} =~ /^required/
-          && $modules{$dst_module} eq '!missing') {
-        $modules{$dst_module} = "required"; # . ", via $src_module";
+      if (   $modules{$src_module}
+          && $modules{$dst_module}
+          && $modules{$src_module}->{status} =~ /^required/
+          && $modules{$dst_module}->{status} eq '!missing') {
+        $modules{$dst_module}->{status} = "required"; # . ", via $src_module";
         $changed = 1;
       }
     }
   }
 }
 
-print sprintf "%8s : %s", color_text($modules{$_}), $_
+print sprintf "%8s : %s (%s)", color_text($modules{$_}->{status}), $_, join(' ', @{ $modules{$_}->{files} || [] })
   for sort {
-       $modules{$a} cmp $modules{$b}
-    ||          $a  cmp $b
+       $modules{$a}->{status} cmp $modules{$b}->{status}
+    ||                    $a  cmp $b
   } keys %modules;
 
 sub modulize {
index 64ef01b297c18c94afaf2d4dd8f77b3d2c295126..4fc58881149e0f6771d19c76d679f2b2b90dca8b 100644 (file)
@@ -27,7 +27,7 @@
  </table>
 
  <p>
-  [% 'If you want to change any of these parameters then press the &quot;Back&quot; button, edit the file &quot;config/authentication.pl&quot; and login into the admin module again.' | $T8 %]
+  [% 'If you want to change any of these parameters then press the &quot;Back&quot; button, edit the file &quot;config/lx_office.conf&quot; and login into the admin module again.' | $T8 %]
  </p>
 
  <form method="post" action="admin.pl">
index e9530b09f5b4586a33a899447a7f55284b42a128..0f65e36b4403dab6bafd95863ff2e5e4961b7ccf 100644 (file)
@@ -3,7 +3,7 @@
 
  <p><b>[% 'Error!' | $T8 %]</b></p>
 
- <p>[% 'The authentication configuration file &quot;config/authentication.pl&quot; does not exist. This Lx-Office installation has probably not been updated correctly yet. Please contact your administrator.' | $T8 %]</p>
+ <p>[% 'The authentication configuration file &quot;config/lx_office.conf&quot; does not exist. This Lx-Office installation has probably not been updated correctly yet. Please contact your administrator.' | $T8 %]</p>
 
  <p>[% 'If you yourself want to upgrade the installation then please read the file &quot;doc/UPGRADE&quot; and follow the steps outlined in this file.' | $T8 %]</p>