]> wagnertech.de Git - kivitendo-erp.git/commitdiff
Vor Zugriff auf "employee"-Tabelle testen, ob diese existiert.
authorMoritz Bunkus <m.bunkus@linet-services.de>
Fri, 5 Jun 2009 07:23:43 +0000 (07:23 +0000)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Fri, 5 Jun 2009 07:23:43 +0000 (07:23 +0000)
Es kann sein, dass die Funktion User::create_employee_record()
aufgerufen wird, bevor die beim Benutzer eingetragene Datenbank
existiert bzw. bevor darin die Lx-Office-Tabellen existieren. In
diesem Falle darf create_employee_record() nicht fehlschlagen, weil
der Eintrag in "employee" spätestens beim Login angelegt wird.

Das kann z.B. passieren, wenn im Administrationsbereich zuerst ein
Benutzer und später erst die dazugehörige Datenbank angelegt wird.

Fix für Bug 922.

SL/User.pm

index 487236800cdf8c016cd2a7d3fc05e80cc3020ea5..a49b3b5c6d3332942090814e530b474ae2bb3d2f 100644 (file)
@@ -971,6 +971,11 @@ sub create_employee_entry {
   my $myconfig        = shift;
   my $update_existing = shift;
 
   my $myconfig        = shift;
   my $update_existing = shift;
 
+  if (!does_table_exist($dbh, 'employee')) {
+    $main::lxdebug->leave_sub();
+    return;
+  }
+
   # add login to employee table if it does not exist
   # no error check for employee table, ignore if it does not exist
   my ($id)  = selectrow_query($form, $dbh, qq|SELECT id FROM employee WHERE login = ?|, $self->{login});
   # add login to employee table if it does not exist
   # no error check for employee table, ignore if it does not exist
   my ($id)  = selectrow_query($form, $dbh, qq|SELECT id FROM employee WHERE login = ?|, $self->{login});