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)
|
// Récupérer l'opération active depuis la session (déjà récupérée lors du login)
|
||||||
$activeOperationId = Session::getOperationId();
|
$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;
|
$opeUserId = null;
|
||||||
|
|
||||||
// Si une opération active existe, créer automatiquement l'entrée ope_users
|
// Si une opération active existe, créer automatiquement l'entrée ope_users
|
||||||
|
|||||||
Reference in New Issue
Block a user