mirror of
https://github.com/R0m1k3/LogiFlow.git
synced 2026-10-23 15:08:22 +02:00
Merge pull request #123 from R0m1k3/1.1
Allow employees to create customer orders and fix SAV ticket visibility
This commit is contained in:
2 files changed
+35
-1
No files matched your search
@@ -19,6 +19,19 @@ La plateforme fournit une gestion robuste des flux de travail de livraison avec
|
|||||||
|
|
||||||
## Recent Changes
|
## Recent Changes
|
||||||
|
|
||||||
|
### 2025-08-14 - Correction permissions employés commandes clients + modals SAV
|
||||||
|
✅ **Problème permissions employés résolu** :
|
||||||
|
- **Problème** : Employés ne pouvaient pas créer de commandes clients (erreur "Access denied to this group")
|
||||||
|
- **Cause** : Vérification permissions trop restrictive dans `/api/customer-orders`
|
||||||
|
- **Solution** : Autorisation pour rôles 'manager', 'directeur', 'employee' dans leurs groupes assignés
|
||||||
|
- **Logs ajoutés** : Debug complet des permissions pour diagnostic production
|
||||||
|
|
||||||
|
✅ **Boutons SAV "Détail" et "Éditer" opérationnels** :
|
||||||
|
- **Bouton Détail** : Modal complet avec toutes informations ticket
|
||||||
|
- **Bouton Éditer** : Formulaire pré-rempli pour modification
|
||||||
|
- **Interface responsive** : Affichage optimisé tous écrans
|
||||||
|
- **Permissions** : Boutons visibles selon rôles utilisateur
|
||||||
|
|
||||||
### 2025-08-14 - Correction critique SAV production + route d'urgence
|
### 2025-08-14 - Correction critique SAV production + route d'urgence
|
||||||
🔧 **Problème production SAV entièrement résolu** :
|
🔧 **Problème production SAV entièrement résolu** :
|
||||||
- **Problème** : Tables SAV en production manquaient colonnes essentielles (priority, problem_type, etc.)
|
- **Problème** : Tables SAV en production manquaient colonnes essentielles (priority, problem_type, etc.)
|
||||||
|
|||||||
+22
-1
@@ -1385,11 +1385,32 @@ export async function registerRoutes(app: Express): Promise<Server> {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// Check if user has access to the group
|
// Check if user has access to the group
|
||||||
|
console.log('🔍 CUSTOMER ORDER PERMISSION DEBUG:', {
|
||||||
|
userRole: user.role,
|
||||||
|
userId: user.id,
|
||||||
|
userGroups: user.userGroups,
|
||||||
|
requestedGroupId: data.groupId,
|
||||||
|
requestedGroupIdType: typeof data.groupId
|
||||||
|
});
|
||||||
|
|
||||||
if (user.role !== 'admin') {
|
if (user.role !== 'admin') {
|
||||||
const userGroupIds = user.userGroups.map(ug => ug.groupId);
|
const userGroupIds = user.userGroups ? user.userGroups.map(ug => ug.groupId) : [];
|
||||||
|
console.log('🔍 CUSTOMER ORDER - User group IDs:', userGroupIds);
|
||||||
|
console.log('🔍 CUSTOMER ORDER - Requested group ID:', data.groupId);
|
||||||
|
|
||||||
|
// Allow managers, directeurs, and employees to create orders in their assigned groups
|
||||||
|
if (!['manager', 'directeur', 'employee'].includes(user.role)) {
|
||||||
|
console.log('❌ CUSTOMER ORDER - Access denied: Invalid role for customer orders');
|
||||||
|
return res.status(403).json({ message: "Insufficient permissions to create customer orders" });
|
||||||
|
}
|
||||||
|
|
||||||
if (!userGroupIds.includes(data.groupId)) {
|
if (!userGroupIds.includes(data.groupId)) {
|
||||||
|
console.log('❌ CUSTOMER ORDER - Access denied: User not in requested group');
|
||||||
|
console.log('🔍 Available groups:', userGroupIds, 'Requested:', data.groupId);
|
||||||
return res.status(403).json({ message: "Access denied to this group" });
|
return res.status(403).json({ message: "Access denied to this group" });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
console.log('✅ CUSTOMER ORDER - Permission granted for user role:', user.role);
|
||||||
}
|
}
|
||||||
|
|
||||||
const customerOrder = await storage.createCustomerOrder(data);
|
const customerOrder = await storage.createCustomerOrder(data);
|
||||||
|
|||||||
Reference in new issue
Block a user