mirror of
https://github.com/R0m1k3/LogiFlow.git
synced 2026-10-17 04:06:44 +02:00
Update role permissions to prevent employees from creating tasks, while ensuring they can view tasks and suppliers. Adjustments also made to director and manager permissions for product validation. 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/69xEJ3P
4.1 KiB
4.1 KiB
CORRECTIONS FINALES POUR SERVEUR DE PRODUCTION
Erreurs 403 Employés - Version Corrigée
⚠️ CLARIFICATION IMPORTANTE
Les employés ne doivent PAS créer de tâches, seulement les voir
CORRECTIONS À APPLIQUER SUR VOTRE SERVEUR PRIVÉ
1️⃣ FICHIER: server/routes.ts SEULEMENT
Les permissions dans shared/permissions.ts restent inchangées
A) Route GET /api/suppliers (environ ligne 188-194):
// REMPLACER:
if (!user || (user.role !== 'admin' && user.role !== 'manager')) {
return res.status(403).json({ message: "Insufficient permissions" });
}
// PAR:
if (!user || (user.role !== 'admin' && user.role !== 'manager' && user.role !== 'directeur' && user.role !== 'employee')) {
return res.status(403).json({ message: "Insufficient permissions" });
}
B) Route POST /api/suppliers (environ ligne 240-242):
// REMPLACER:
if (user.role !== 'admin' && user.role !== 'manager') {
console.error('❌ Insufficient permissions:', { userRole: user.role, required: ['admin', 'manager'] });
return res.status(403).json({ message: "Insufficient permissions" });
}
// PAR:
if (user.role !== 'admin' && user.role !== 'manager' && user.role !== 'directeur') {
console.error('❌ Insufficient permissions:', { userRole: user.role, required: ['admin', 'manager', 'directeur'] });
return res.status(403).json({ message: "Insufficient permissions" });
}
C) Route PUT /api/suppliers/:id (environ ligne 281-283):
// REMPLACER:
if (!user || (user.role !== 'admin' && user.role !== 'manager')) {
return res.status(403).json({ message: "Insufficient permissions" });
}
// PAR:
if (!user || (user.role !== 'admin' && user.role !== 'manager' && user.role !== 'directeur')) {
return res.status(403).json({ message: "Insufficient permissions" });
}
D) Route DELETE /api/suppliers/:id (environ ligne 298-300):
// REMPLACER:
if (!user || (user.role !== 'admin' && user.role !== 'manager')) {
return res.status(403).json({ message: "Insufficient permissions" });
}
// PAR:
if (!user || (user.role !== 'admin' && user.role !== 'directeur')) {
return res.status(403).json({ message: "Insufficient permissions" });
}
E) Route POST /api/dlc-products/:id/validate (environ ligne 2332-2334):
// REMPLACER:
if (!user || !['admin', 'manager'].includes(user.role)) {
return res.status(403).json({ message: "Insufficient permissions to validate products" });
}
// PAR:
if (!user || !['admin', 'manager', 'directeur'].includes(user.role)) {
return res.status(403).json({ message: "Insufficient permissions to validate products" });
}
📋 ÉTAPES D'APPLICATION SIMPLIFIÉES
- Sauvegarde (sur votre serveur de production):
cp server/routes.ts server/routes.ts.backup
-
Modification: Ouvrez
server/routes.tset effectuez les 5 corrections ci-dessus -
Redémarrage: Redémarrez votre serveur Node.js
-
Test: Testez avec un compte employé
✅ RÉSULTAT ATTENDU
- ✅ Employés peuvent voir les fournisseurs (modules Commandes Client et DLC)
- ✅ Employés peuvent voir la page tâches et les tâches existantes
- ❌ Employés ne peuvent PAS créer de tâches (comportement inchangé)
- ✅ Directeurs peuvent valider les produits DLC
- ✅ Plus d'erreurs 403 sur les actions autorisées
🔍 PERMISSIONS FINALES PAR RÔLE
Employés:
- Fournisseurs: Lecture seulement
- Tâches: Lecture seulement (voir page et tâches)
- Commandes Client: Voir + Créer
- DLC: Voir + Créer
Problème Résolu:
Les erreurs 403 venaient principalement des restrictions d'accès aux fournisseurs, pas des tâches. Les employés ont besoin de voir les fournisseurs pour créer des commandes client et des produits DLC.
🧪 COMMANDE DE TEST POST-CORRECTION
# Test accès fournisseurs pour employé (doit fonctionner):
curl -X GET "https://votre-serveur.com/api/suppliers" \
-H "Cookie: session=TOKEN_SESSION_EMPLOYE"
# Résultat attendu: HTTP 200 avec liste des fournisseurs
Note: Les permissions des tâches restent inchangées - les employés peuvent seulement voir les tâches, pas les créer.