From c8c960bcc06f833933bd3cce3d4aabe68b15fd75 Mon Sep 17 00:00:00 2001 From: Moritz Bunkus Date: Fri, 5 Jun 2009 07:23:43 +0000 Subject: [PATCH] Vor Zugriff auf "employee"-Tabelle testen, ob diese existiert. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/SL/User.pm b/SL/User.pm index 487236800..a49b3b5c6 100644 --- a/SL/User.pm +++ b/SL/User.pm @@ -971,6 +971,11 @@ sub create_employee_entry { 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}); -- 2.20.1