Upload via GUI (290 Dateien)

This commit is contained in:
2026-10-23 17:22:17 +00:00
parent 2edb95aecc
commit 234099d0e7
10 changed files with 768 additions and 7 deletions
+13 -4
View File
@@ -84,7 +84,13 @@ function require_staff_login(): array
{
$staff = current_staff();
if (!$staff) {
flash('error', 'Bitte melden Sie sich an, um fortzufahren.');
// War die Sitzung gerade wegen Inaktivität abgelaufen (ein Hintergrund-Abruf hat sie schon beendet), den Grund nennen
if (!empty($_SESSION['staff_timed_out'])) {
unset($_SESSION['staff_timed_out']);
flash('error', 'Sie wurden wegen Inaktivität abgemeldet. Bitte melden Sie sich erneut an.');
} else {
flash('error', 'Bitte melden Sie sich an, um fortzufahren.');
}
redirect(staff_base_path() . '/login.php');
}
// Inaktivitäts-Timeout
@@ -94,14 +100,17 @@ function require_staff_login(): array
if ($last && (time() - $last) > ($timeout * 60)) {
staff_logout();
if (session_status() !== PHP_SESSION_ACTIVE) session_start();
if (!$userNavigation) {
// Hintergrund-Abruf (Aktualisierung der Liste, Chat-Abfrage …): kurze Antwort statt Weiterleitung auf die Anmeldeseite
$_SESSION['staff_timed_out'] = time(); // merken, damit die Anmeldeseite den Grund nennen kann (siehe oben)
if (!staff_is_document_request()) {
// Hintergrund-Abruf (Aktualisierung der Liste, Chat-Abfrage …): kurze Antwort statt Weiterleitung auf die Anmeldeseite.
// Das Laden einer Seite dagegen führt immer zur Anmeldung, auch wenn der Browser es selbst ausgelöst hat (Tab neu geladen).
http_response_code(401);
header('Content-Type: application/json; charset=utf-8');
echo json_encode(['error' => 'Session abgelaufen', 'sessionExpired' => true]);
exit;
}
$_SESSION['flash'] = [['type'=>'error','message'=>'Sie wurden wegen Inaktivität abgemeldet.']];
unset($_SESSION['staff_timed_out']);
$_SESSION['flash'] = [['type'=>'error','message'=>'Sie wurden wegen Inaktivität abgemeldet. Bitte melden Sie sich erneut an.']];
redirect('/staff/login.php');
}
// Nur echte Bedienung hält die Sitzung am Leben: ein vom Nutzer ausgelöster Seitenaufruf oder der Ping der Seite bei Klicks und