GX-Feature #48290
geschlossenKonfigurierbarer Timeout im Gambio Admin
100%
Beschreibung
Es geht dabei darum, nach wie langer Inaktivität der Admin automatisch ausgeloggt wird.
Leider scheint es nicht auf allen Servern zu funktionieren, den Session-Timeout per ini_set zu überschreiben.
Es soll eine Konfiguration unter dem Menüpunkt "System Einstellungen > Sessions" angelegt werden, die die gewünschte Session-Dauer (Minimum: 1 Minute) des Admins festlegt.
Mittels ini_get lässt sich der server-seitig eingestellte Session-Timeout auslesen.
Je nachdem, ob die vom Shopbetreiber konfigurierte Dauer größer oder kleiner ist, als die server-seitig eingestellte, muss eine von zwei Strategien verwendet werden:
Configuration > Server-Session-Timeout
Wenn die Konfiguration höher ist, als die server-seitig eingestellte, soll das Verfahren, wie in Tills Timeout-Cheater (vgl. Forum) angewendet werden. Um auf genau die konfigurierte Timeout-Dauer zu kommen, werden Pings in Regelmäßigen Abständen an den Server gesendet, die eine Aktivität des Admin simulieren. Der letzte Ping muss zum Zeitpunkt configuration - serverside_timeout geschehen.Configuration < Server-Session-Timeout
Wenn die Konfiguration niedriger ist, als der server-seitige Timeout, soll die Session des Admins vorzeitig zerstört werden (session_destroy). Die Überprüfung dafür soll in der includes/application_top.php, includes/application_top_main.php und admin/includes/application_top.php stattfinden. Zunächst soll überprüft werden, ob eine bestimmte Session-Variable "last_activity_time" verfügbar ist. Wenn ja, wird geprüft, ob die Differenz zwischen "last_activity_time" und der aktuellen Zeit das konfigurierte Timeout übersteigt. Wenn ja, session_destroy. Anschließend wird, falls die Session nicht zerstört wurde, die aktuelle Zeit in "last_activity_time" geschrieben.