From caa629de1287f86231fa7a468b53372b38edc131 Mon Sep 17 00:00:00 2001 From: Moritz Bunkus Date: Thu, 6 Jun 2019 12:23:34 +0200 Subject: [PATCH] SessionValue: damit klarkommen, dass Auth-DB & Session-Tabellen nicht existieren MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Durch die Änderungen letztens, mit der Session-Werte auch bei parallel laufenden kivitendo-Requests richtig erhalten bleiben, wurde SessionValue so umgeschrieben, dass es davon ausgeht, dass sowohl die Auth-DB als auch die Session-Tabellen immer existieren. Dies ist jedoch während der Erstinstallation nicht der Fall. Diverse Requests im Admin-Controller müssen ausgeführt werden können, damit Auth-DB & Session-Tabellen über den Controller angelegt werden können. Da der Admin-Auth-Handler aber auch mit Sessions funktionieren kann, fragt er also Session-Werte ab; die wiederum versuchen, SessionValue-Instanzen zu nutzen. SessionValue prüft nun bewusst auf Präsenz der Session-Tabellen, bevor es versucht, aus ihnen zu lesen. Dies ist Teil des Fixes von #376. --- SL/Auth/SessionValue.pm | 1 + 1 file changed, 1 insertion(+) diff --git a/SL/Auth/SessionValue.pm b/SL/Auth/SessionValue.pm index a3264e52d..0950a46b9 100644 --- a/SL/Auth/SessionValue.pm +++ b/SL/Auth/SessionValue.pm @@ -46,6 +46,7 @@ sub _fetch { my ($self) = @_; return $self if $self->{fetched}; + return $self if !$self->{auth}->session_tables_present; my $dbh = $self->{auth}->dbconnect; my $query = qq|SELECT sess_value FROM auth.session_content WHERE (session_id = ?) AND (sess_key = ?)|; -- 2.20.1