36 lines
1020 B
PHP
36 lines
1020 B
PHP
<?php
|
|
$timeout = 900; // 15 minutes
|
|
|
|
$usersFile = __DIR__ . '/../users.json.php';
|
|
$users = file_exists($usersFile) ? json_decode(file_get_contents($usersFile), true) : [];
|
|
|
|
// Vérifier si connecté
|
|
if (!isset($_SESSION['user'])) {
|
|
header("Location: login.php");
|
|
exit();
|
|
}
|
|
|
|
// Vérifier si l'utilisateur existe toujours dans users.json.php
|
|
if (!isset($users[$_SESSION['user']])) {
|
|
session_destroy();
|
|
header("Location: login.php?timeout=1");
|
|
exit();
|
|
}
|
|
|
|
// Vérifier si le rôle en session correspond toujours au rôle dans users.json.php
|
|
if ($_SESSION['role'] !== $users[$_SESSION['user']]['role']) {
|
|
$_SESSION['role'] = $users[$_SESSION['user']]['role'];
|
|
}
|
|
|
|
// Vérifier l'inactivité
|
|
if (isset($_SESSION['last_activity'])) {
|
|
$inactif = time() - $_SESSION['last_activity'];
|
|
if ($inactif > $timeout) {
|
|
session_destroy();
|
|
header("Location: login.php?timeout=1");
|
|
exit();
|
|
}
|
|
}
|
|
|
|
// Mettre à jour le temps de dernière activité
|
|
$_SESSION['last_activity'] = time(); |