Files
Regisflow/PRODUCTION_URGENT_FIX.md
T
michaelschal fd2ef4f7a1 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
2025-07-19 17:10:19 +00:00

1.8 KiB

CORRECTION URGENTE PRODUCTION - PROBLÈME SÉLECTEUR MAGASIN

✅ PROBLÈME IDENTIFIÉ ET RÉSOLU

Problème principal

  • Ventes créées sur le mauvais magasin malgré le sélecteur de magasin
  • Frontend utilisait user?.role === 'admin' au lieu de 'administrator'
  • Le storeId n'était pas envoyé dans les requêtes de création de vente

✅ CORRECTIONS APPLIQUÉES

1. Frontend corrigé

// ✅ AVANT (incorrect)
...(user?.role === 'admin' && selectedStoreId && { storeId: selectedStoreId })

// ✅ APRÈS (correct)
...(user?.role === 'administrator' && selectedStoreId && { storeId: selectedStoreId })

2. Backend corrigé

// ✅ Routes API corrigées pour utiliser 'administrator' au lieu de 'admin'
if (user.role !== 'administrator' && targetStoreId !== user.storeId)
if (user.role === 'administrator' && req.body.storeId)

Solutions pour production

1. Corriger l'utilisateur admin production

-- Mettre à jour l'utilisateur gael (ID 3) pour qu'il ait les bons droits
UPDATE users SET role = 'administrator', store_id = NULL WHERE id = 3;

2. Redémarrer l'application

docker restart regisflow-regisflow-1

3. Test après correction

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
  • La suppression de ventes fonctionne correctement

✅ CORRECTION SUPPLÉMENTAIRE - Suppression des ventes

Route DELETE corrigée pour utiliser 'administrator' au lieu de 'admin':

app.delete('/api/sales/:id', requireRole(['administrator', 'manager']), ...)