Rose::DB: DB-Verbindung: Zuerst auf Type "AUTH" prüfen, dann leer nehmen, falls keine...
authorMoritz Bunkus <m.bunkus@linet-services.de>
Wed, 5 Jun 2013 08:56:12 +0000 (10:56 +0200)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Thu, 13 Jun 2013 14:24:19 +0000 (16:24 +0200)
Andernfalls kann man aus admin.pl, wo %::myconfig oft genug leer ist,
keine Rose::DB-Objekte Auth* nutzen.

SL/DB.pm

index f20e189..0125114 100644 (file)
--- a/SL/DB.pm
+++ b/SL/DB.pm
@@ -49,12 +49,8 @@ sub _register_db {
   my %connect_settings;
   my $initial_sql;
 
-  if (!%::myconfig) {
-    $type = 'KIVITENDO_EMPTY';
-    %connect_settings = ( driver => 'Pg' );
-
-  } elsif ($type eq 'KIVITENDO_AUTH') {
-    %connect_settings = ( driver          => $::myconfig{dbdriver} || 'Pg',
+  if ($type eq 'KIVITENDO_AUTH') {
+    %connect_settings = ( driver          => 'Pg',
                           database        => $::auth->{DB_config}->{db},
                           host            => $::auth->{DB_config}->{host} || 'localhost',
                           port            => $::auth->{DB_config}->{port} || 5432,
@@ -62,6 +58,10 @@ sub _register_db {
                           password        => $::auth->{DB_config}->{password},
                           connect_options => { pg_enable_utf8 => $::locale && $::locale->is_utf8,
                                              });
+  } elsif (!%::myconfig) {
+    $type = 'KIVITENDO_EMPTY';
+    %connect_settings = ( driver => 'Pg' );
+
   } else {
     my $european_dates = 0;
     if ($::myconfig{dateformat}) {