Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision caa629de

Von Moritz Bunkus vor mehr als 5 Jahren hinzugefügt

  • ID caa629de1287f86231fa7a468b53372b38edc131
  • Vorgänger bbb2383f
  • Nachfolger 3094dbe3

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.

Unterschiede anzeigen:

SL/Auth/SessionValue.pm
46 46
  my ($self) = @_;
47 47

  
48 48
  return $self if $self->{fetched};
49
  return $self if !$self->{auth}->session_tables_present;
49 50

  
50 51
  my $dbh          = $self->{auth}->dbconnect;
51 52
  my $query        = qq|SELECT sess_value FROM auth.session_content WHERE (session_id = ?) AND (sess_key = ?)|;

Auch abrufbar als: Unified diff