Files
LogiFlow/PRODUCTION-EMPLOYEE-FIX-FINAL.md
T
michaelschal 632eb8dd82 Enable employees to create customer orders and DLC products
Fixes production issues preventing employees from creating customer orders and DLC products by ensuring correct permissions, cache invalidation, and backend route configurations.

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/rEII9fE
2025-08-12 14:40:17 +00:00

109 lines
3.3 KiB
Markdown

# Fix Production Urgent - Employé Commandes Client & DLC
## Problèmes Identifiés
1. **Employé ne peut pas créer commandes clients** en production
2. **DLC ne fonctionnent pas** en production (même problème qu'en dev)
3. **Cache invalidation manquante** pour DLC
## Analyse du Code
### ✅ Permissions OK
```javascript
// shared/permissions.ts - Lignes 67-73 et 75-81
'customer-orders': {
employee: ['view', 'create'] // ✅ PERMISSION OK
},
dlc: {
employee: ['view', 'create'] // ✅ PERMISSION OK
}
```
### ✅ Routes Backend OK
```javascript
// server/routes.ts
// POST /api/customer-orders - REMOVED: All role restrictions
// POST /api/dlc-products - REMOVED: All role restrictions
```
### ✅ Frontend Permissions OK
```javascript
// client/src/lib/permissions.ts - Ligne 118
const canCreate = (module: Module): boolean => canPerformAction(module, 'create');
// usePermissions(user?.role) fonctionne correctement
```
## Root Cause Probable
Le problème n'est PAS les permissions mais plutôt :
1. **Cache frontend** - L'employé a peut-être un cache obsolète
2. **Erreur validation** - Schema validation qui échoue silencieusement
3. **GroupId manquant** - L'employé n'a pas de groupId défini correctement
4. **DLC Production** - Même problème cache qu'en dev
## Solutions Immédiates
### 1. Fix Cache DLC (Déjà Fait en Dev)
```javascript
// client/src/pages/DlcPage.tsx
queryClient.invalidateQueries({ queryKey: ["/api/dlc-products"], exact: false });
```
### 2. Debug Frontend Production
```javascript
// À tester en console DevTools sur production:
console.log("User:", user);
console.log("Role:", user?.role);
console.log("Groups:", user?.userGroups);
console.log("Can create customer orders:", permissions.canCreate('customer-orders'));
console.log("Can create DLC:", permissions.canCreate('dlc'));
```
### 3. Test Manual Production
```javascript
// Tester en curl direct sur serveur production:
curl -X POST https://votre-serveur/api/customer-orders \
-H "Content-Type: application/json" \
-H "Cookie: session=..." \
-d '{
"customerName": "Test Production",
"contactNumber": "0123456789",
"productName": "Test",
"quantity": 1,
"groupId": 2
}'
```
## Actions Requises
### Immédiat
1. **Redémarrer serveur production** pour avoir les derniers fixes
2. **Vider cache browser** de l'employé (Ctrl+F5 ou mode incognito)
3. **Tester création commande** avec DevTools ouvert
4. **Noter toute erreur** console/réseau
### Si Problème Persiste
1. **Logs serveur** - Chercher erreurs dans logs production
2. **User Groups** - Vérifier que l'employé a bien un groupe assigné
3. **Schema Validation** - Tester les données envoyées
## Checklist Déploiement
- [x] Routes backend sans restrictions rôle
- [x] Permissions employé définies correctement
- [x] Cache invalidation DLC avec exact:false
- [x] Frontend permissions hook fonctionnel
- [ ] Serveur production redémarré
- [ ] Cache browser employé vidé
- [ ] Tests création commande/DLC validés
## Fichiers Modifiés
1. `client/src/pages/DlcPage.tsx` - Cache invalidation fix
2. `server/routes.ts` - Debug logs ajoutés
3. `server/storage.ts` - MemStorage DLC fix (dev uniquement)
## Prochain Pas
**Tester immédiatement** après redémarrage serveur production avec un employé en mode incognito + DevTools.