From: Moritz Bunkus Date: Thu, 6 Jun 2019 10:23:34 +0000 (+0200) Subject: SessionValue: damit klarkommen, dass Auth-DB & Session-Tabellen nicht existieren X-Git-Tag: release-3.5.4~59 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=caa629de1287f86231fa7a468b53372b38edc131;p=kivitendo-erp.git SessionValue: damit klarkommen, dass Auth-DB & Session-Tabellen nicht existieren 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. --- 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 = ?)|;