Files
LogiFlow/debug-employee-customer-orders.js
T
michaelschal 25b937aa6a Allow employees to create customer orders on the production server
Modify route protection logic in `server/routes.ts` to allow 'employee' role users to create customer orders and deliveries, aligning with the user's report that all roles should have this capability. Also, remove extensive debugging script and replace with a streamlined test script in `test-employee-customer-orders-production.js`.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: b163d4c0-de5e-4f4e-a9c0-aed4c7049718
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/1957c339-2757-4d1f-8e92-e9f71a1ce58e/b163d4c0-de5e-4f4e-a9c0-aed4c7049718/KcBoGui
2025-08-12 14:01:26 +00:00

75 lines
3.4 KiB
JavaScript

#!/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 ===');