Projekt

Allgemein

Profil

Aktionen

GX-Feature #48290

geschlossen

Konfigurierbarer Timeout im Gambio Admin

Von Daniel Wu vor mehr als 8 Jahren hinzugefügt. Vor etwa 8 Jahren aktualisiert.

Status:
Erledigt
Priorität:
Normal
Zugewiesen an:
Kategorie:
Core
Zielversion:
% erledigt:

100%

Geschätzter Aufwand:
Steps to reproduce:
Betroffene Versionen:
Unbestimmt
Release Notes Langtext:

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:

  1. 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.

  2. 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.


Aktionen

Auch abrufbar als: Atom PDF