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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user