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 97acf8a..5604cd9 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 a002953..d656752 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 f2d15a8..3b7a628 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 1b33de3..ea93262 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 d49595b..bb64a5b 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 0ed1d93..8447788 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 b0d8010..8f44016 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 3e9dc5c..3759d9e 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 ff5e97b..b4d4471 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 63ac6ae..c4636ba 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 106d8af..fd27916 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 ddbffa0..5b52acb 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 b73c6d3..1f3ea1f 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 f3aa5b9..d7cb544 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 a3cb96d..1633263 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 13e084c..6af32f7 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 a1c7204..3cb05b3 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 7920513..1d27373 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 82276ad..f7bc4cc 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 0c684f1..d971a57 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 159b644..9495dbc 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 40515d2..46175cf 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 d25d81d..b33dba3 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 6b94341..c8eff51 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 ecf809e..6fb1b36 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 59787fa..76f4d68 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 a8e36d1..4d695c8 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 a8be5f9..9be7c42 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 d0a11d8..6a754db 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 e3f64d5..b541f37 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 5cd6952..666e4f5 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 4809b75..61a7880 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 654f331..0c77788 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 267b2ac..cfb5334 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 858c047..b57d833 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 fc2c61a..476a31c 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 cead274..6346b68 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 8359b1e..9751610 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 9a0b95d..d7cb6d2 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 36f20e0..71d6e4f 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 5d28203..ac569e8 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 4fcb030..84129c2 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 64ef01b..4fc5888 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 e9530b0..0f65e36 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>