feat: Ajouter fallback SQL si operation_id absent de la session

- Si Session::getOperationId() retourne null, requête SQL de fallback
- Log de warning pour identifier les cas où la session n'est pas à jour
- Utile si l'utilisateur n'a pas fait de login récent
- Garantit que l'opération active est toujours récupérée
This commit is contained in:
2026-01-26 17:06:00 +01:00
parent d0697b1e01
commit 6fd02079c1

View File

@@ -506,6 +506,26 @@ class UserController {
// Récupérer l'opération active depuis la session (déjà récupérée lors du login)
$activeOperationId = Session::getOperationId();
// Fallback: si pas d'operation_id en session, récupérer depuis la base de données
if (!$activeOperationId) {
$stmtActiveOpe = $this->db->prepare('
SELECT o.id
FROM operations o
INNER JOIN users u ON u.fk_entite = o.fk_entite
WHERE u.id = ? AND o.chk_active = 1
LIMIT 1
');
$stmtActiveOpe->execute([$currentUserId]);
$activeOpeData = $stmtActiveOpe->fetch(PDO::FETCH_ASSOC);
$activeOperationId = $activeOpeData ? (int)$activeOpeData['id'] : null;
LogService::log('Opération active récupérée depuis la base (pas en session)', [
'level' => 'warning',
'userId' => $currentUserId,
'activeOperationId' => $activeOperationId
]);
}
$opeUserId = null;
// Si une opération active existe, créer automatiquement l'entrée ope_users