diff --git a/docs/WORKFLOW_AGENT.md b/docs/WORKFLOW_AGENT.md index bc57571..8da40dd 100644 --- a/docs/WORKFLOW_AGENT.md +++ b/docs/WORKFLOW_AGENT.md @@ -30,10 +30,13 @@ L'agent arrive sur l'écran de connexion avec : - Champ code agent - Champ mot de passe - Sélecteur de terminal téléphonique (liste dynamique) +- Option "Forcer la déconnexion" (checkbox) - Bouton de connexion ### 2.2 Processus d'authentification +#### Connexion standard + ```javascript // Envoi des credentials au serveur AgentLogin(email, password, terminal) → Serveur SignalR @@ -62,6 +65,79 @@ AgentLogin(email, password, terminal) → Serveur SignalR } ``` +#### Connexion avec déconnexion forcée + +Utilisée dans les cas suivants : +- **Session bloquée** : Déconnexion anormale précédente (crash, perte réseau) +- **Changement de poste** : L'agent se connecte depuis un autre ordinateur +- **Reprise après erreur** : Nettoyage d'une session corrompue + +```javascript +// Si la case "Forcer la déconnexion" est cochée +if (forceLogoff) { + // 1. D'abord déconnexion de la session précédente + AgentLogoff(userId) → Serveur SignalR + + // 2. Puis nouvelle connexion + AgentLogin(email, password, terminal) → Serveur SignalR +} +``` + +**Interface HTML correspondante** : + +```html +
+``` + +**Implémentation technique** : + +```javascript +// Handler de connexion avec gestion de la déconnexion forcée +function handleLogin(event, forceDisconnect, user, password, terminal) { + try { + // Si déconnexion forcée demandée ET user fourni + if (forceDisconnect && user !== null) { + // Nettoyer la session précédente + AgentLogoff(user); + console.log(`Session précédente de ${user} fermée`); + } + + // Procéder à la connexion normale + client.invoke('AgentLogin', user, password, terminal) + .then(result => { + if (result) { + // Connexion réussie + processSuccessfulLogin(result); + } else { + // Échec de connexion + showError('Identifiants incorrects'); + } + }); + } catch (error) { + console.error('Erreur lors de la connexion:', error); + } +} +``` + +Cette fonctionnalité garantit qu'un agent peut toujours reprendre son travail rapidement, même après une déconnexion anormale, sans nécessiter d'intervention technique. + ### 2.3 Post-connexion **Actions automatiques après connexion réussie** :