From fd2ef4f7a15c1893f4437cdcc41ac6a3997dd28e Mon Sep 17 00:00:00 2001 From: michaelschal <35957947-michaelschal@users.noreply.replit.com> Date: Sat, 19 Jul 2025 17:10:19 +0000 Subject: [PATCH] Enable administrators to delete sales and manage store selections Fixes sales deletion route and updates admin user role in the database. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 4b008663-bd72-492b-b0b6-fa252367e730 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/0715008c-7244-40f4-befc-26c014852236/4b008663-bd72-492b-b0b6-fa252367e730/gfGF2TH --- PRODUCTION_URGENT_FIX.md | 9 ++++- attached_assets/image_1752944914799.png | Bin 0 -> 63250 bytes fix-production-complete.sql | 45 ++++++++++++++++++++++++ server/routes.ts | 2 +- 4 files changed, 54 insertions(+), 2 deletions(-) create mode 100644 attached_assets/image_1752944914799.png create mode 100644 fix-production-complete.sql diff --git a/PRODUCTION_URGENT_FIX.md b/PRODUCTION_URGENT_FIX.md index 21a47c2..7bcc6b0 100644 --- a/PRODUCTION_URGENT_FIX.md +++ b/PRODUCTION_URGENT_FIX.md @@ -44,4 +44,11 @@ Les ventes devraient maintenant être créées sur le bon magasin sélectionné. ## ✅ RÉSULTATS ATTENDUS - L'admin peut voir et sélectionner tous les magasins - Les ventes sont créées sur le magasin sélectionné -- L'historique affiche les ventes du bon magasin \ No newline at end of file +- L'historique affiche les ventes du bon magasin +- La suppression de ventes fonctionne correctement + +### ✅ CORRECTION SUPPLÉMENTAIRE - Suppression des ventes +Route DELETE corrigée pour utiliser 'administrator' au lieu de 'admin': +```javascript +app.delete('/api/sales/:id', requireRole(['administrator', 'manager']), ...) +``` \ No newline at end of file diff --git a/attached_assets/image_1752944914799.png b/attached_assets/image_1752944914799.png new file mode 100644 index 0000000000000000000000000000000000000000..caa3a07df2b72f4f459de6f4f5e90a68048047c7 GIT binary patch literal 63250 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 AnE(I) literal 0 HcmV?d00001 diff --git a/fix-production-complete.sql b/fix-production-complete.sql new file mode 100644 index 0000000..f1906cd --- /dev/null +++ b/fix-production-complete.sql @@ -0,0 +1,45 @@ +-- CORRECTION COMPLÈTE PRODUCTION - Tous les problèmes identifiés +-- Exécuter ces commandes dans la base de données production + +-- 1. Corriger l'utilisateur admin (ID 3) - permissions complètes +UPDATE users +SET role = 'administrator', store_id = NULL +WHERE id = 3 AND username = 'gael'; + +-- 2. Vérifier que la correction a bien été appliquée +SELECT 'UTILISATEUR ADMIN CORRIGÉ:' as status, + id, username, role, store_id +FROM users +WHERE id = 3; + +-- 3. Vérifier tous les magasins disponibles +SELECT 'MAGASINS DISPONIBLES:' as info, + id, name, is_active +FROM stores +ORDER BY id; + +-- 4. Vérifier la répartition des ventes par magasin +SELECT 'RÉPARTITION DES VENTES:' as info, + store_id, + COUNT(*) as total_ventes, + MAX(timestamp) as derniere_vente +FROM sales +GROUP BY store_id +ORDER BY store_id; + +-- 5. Test de permissions (à exécuter après redémarrage de l'application) +-- curl -X POST http://votre-domaine:5000/api/auth/login \ +-- -H "Content-Type: application/json" \ +-- -d '{"username":"gael","password":"votre_mot_de_passe"}' +-- +-- curl http://votre-domaine:5000/api/stores -H "Cookie: session_cookie" +-- (Devrait retourner tous les magasins) +-- +-- curl http://votre-domaine:5000/api/sales?storeId=2 -H "Cookie: session_cookie" +-- (Devrait retourner les ventes du magasin Houdemont) + +-- RÉSULTATS ATTENDUS APRÈS APPLICATION : +-- ✅ Magasins : Admin voit Frouard ET Houdemont dans le sélecteur +-- ✅ Création : Ventes créées sur le magasin sélectionné (pas toujours Frouard) +-- ✅ Historique : Affichage des ventes du magasin sélectionné +-- ✅ Suppression : Les ventes peuvent être supprimées par l'admin \ No newline at end of file diff --git a/server/routes.ts b/server/routes.ts index 54547e9..4895815 100644 --- a/server/routes.ts +++ b/server/routes.ts @@ -340,7 +340,7 @@ export async function registerRoutes(app: Express): Promise { } }); - app.delete('/api/sales/:id', requireRole(['admin', 'manager']), async (req, res) => { + app.delete('/api/sales/:id', requireRole(['administrator', 'manager']), async (req, res) => { try { const saleId = parseInt(req.params.id); await storage.deleteSale(saleId);