Projekt

Allgemein

Profil

Aktionen

GX-Feature #48290

geschlossen

Konfigurierbarer Timeout im Gambio Admin

Von Daniel Wu vor mehr als 7 Jahren hinzugefügt. Vor mehr als 7 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 #1

Von Sergej Kronhardt vor mehr als 7 Jahren aktualisiert

  • Status wurde von Gemeldet zu Testing geändert
  • Zugewiesen an wurde von Sergej Kronhardt zu Core-Entwickler geändert

Der konfigurierbarer Timeout im Gambio Admin wurde unter den Einstellungen für Session eingebunden (Session Gültigkeitsdauer).

Der bereits aus dem Forum kursierender "Timeout-Cheater" (von Till) würde bei manuellen Konfigurationen, die über die serverseitige Einstellung hinausgeht, nicht funktionieren bzw. eine endlose Anwesenheit simulieren.

Die Grundidee wurde jedoch übernommen und um eine Rechenoperation erweitert, damit auch eine simulierte Anwesenheit für die Dauer (mit Abweichung) der manuellen Konfiguration besteht.

Um so höher die Differenz zwischen serverseitigen und manuellen Konfiguration ist, desto seltener wird eine Anwesenheit bis zu der konfigurierten Gültigkeitsdauer simuliert.
Liegt die manuelle Konfiguration unter der serverseitigen Einstellung wird nach der festgelegten Zeit automatisiert aus dem Gambio Admin abgemeldet.

Aktionen #3

Von Sergej Kronhardt vor mehr als 7 Jahren aktualisiert

Euklidischer Algorithmus implementiert, damit die simulierte Anwesenheit nie die Servereinstellung übersteigt.
Die Abweichung pro simulierte Anwesenheit ist testweise auf eine halbe Sekunde herabgesetzt ggfl. wird die Abweichung wieder auf eine Sekunde zurückgesetzt.

Aktionen #4

Von Daniel Wu vor mehr als 7 Jahren aktualisiert

  • Zielversion wurde von 3.3.1.0 beta1 zu 3.3.1.0 beta2 geändert
Aktionen #6

Von Daniel Wu vor mehr als 7 Jahren aktualisiert

  • Zugewiesen an wurde von Core-Entwickler zu Daniel Wu geändert
Aktionen #7

Von Daniel Wu vor mehr als 7 Jahren aktualisiert

  • Status wurde von Testing zu Erledigt geändert
  • % erledigt wurde von 0 zu 100 geändert
Aktionen

Auch abrufbar als: Atom PDF