#!/usr/bin/env node /** * Script simple pour diagnostiquer le problème employé en production */ console.log('🔍 Diagnostic employé - Création commandes client'); console.log(''); // Instructions pour le diagnostic console.log('=== DIAGNOSTIC PRODUCTION - EMPLOYÉ ==='); console.log(''); console.log('1. VÉRIFICATIONS CÔTÉ SERVEUR :'); console.log(' ✓ Restriction hasPermission supprimée de POST /api/customer-orders'); console.log(' ✓ Seule vérification restante : accès au groupId'); console.log(' ✓ Tous les rôles peuvent créer des commandes client'); console.log(''); console.log('2. CAUSES POSSIBLES DU PROBLÈME :'); console.log(' 📋 Employé pas assigné à un groupe valide'); console.log(' 📋 Problème de validation schema (données envoyées incorrectes)'); console.log(' 📋 Erreur de groupId dans la requête frontend'); console.log(' 📋 Session/authentification corrompue'); console.log(''); console.log('3. VÉRIFICATIONS À FAIRE EN PRODUCTION :'); console.log(''); console.log('A) Vérifier les groupes de l\'employé :'); console.log(' - Se connecter en admin'); console.log(' - Aller dans Administration > Utilisateurs'); console.log(' - Vérifier que l\'employé est assigné à au moins 1 groupe'); console.log(''); console.log('B) Vérifier les logs serveur :'); console.log(' - Ouvrir les logs serveur pendant que l\'employé essaie de créer'); console.log(' - Chercher les messages console.log() de la route POST /api/customer-orders'); console.log(' - Regarder les erreurs Zod ou autres erreurs de validation'); console.log(''); console.log('C) Tester manuellement avec curl :'); console.log(' - Se connecter d\'abord pour récupérer le cookie de session'); console.log(' - Utiliser curl pour tester la création de commande'); console.log(''); console.log('4. EXEMPLE CURL POUR TEST PRODUCTION :'); console.log(''); console.log('# 1. Se connecter en employé'); console.log('curl -c cookies.txt -X POST https://votre-serveur.com/api/login \\'); console.log(' -H "Content-Type: application/json" \\'); console.log(' -d \'{"username":"employee_username","password":"employee_password"}\''); console.log(''); console.log('# 2. Récupérer le profil pour voir les groupes'); console.log('curl -b cookies.txt https://votre-serveur.com/api/user'); console.log(''); console.log('# 3. Créer une commande client (remplacer groupId par un ID valide)'); console.log('curl -b cookies.txt -X POST https://votre-serveur.com/api/customer-orders \\'); console.log(' -H "Content-Type: application/json" \\'); console.log(' -d \'{"customerName":"Test Employé","contactNumber":"0123456789","productName":"Test","productDescription":"Test","quantity":1,"groupId":1,"isPickup":false,"notes":"Test"}\''); console.log(''); console.log('5. SOLUTION PROBABLE :'); console.log(' Si l\'employé n\'est pas assigné à un groupe, l\'assigner via l\'interface admin'); console.log(' Si validation échoue, vérifier que tous les champs requis sont présents'); console.log(''); console.log('6. CODE SERVEUR ACTUEL (POST /api/customer-orders) :'); console.log(' - Plus de vérification hasPermission'); console.log(' - Vérification groupId : userGroupIds.includes(data.groupId)'); console.log(' - Si employé.userGroups est vide → échec garanti'); console.log(' - Si data.groupId invalide → échec garanti'); console.log(''); console.log('=== FIN DU DIAGNOSTIC ===');