mirror of
https://github.com/R0m1k3/Regisflow.git
synced 2026-10-11 17:29:48 +02:00
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
This commit is contained in:
1 parent
be78e1497c
commit
fd2ef4f7a1
4 files changed
+54
-2
No files matched your search
@@ -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
|
||||
- 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']), ...)
|
||||
```
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 62 KiB |
@@ -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
|
||||
+1
-1
@@ -340,7 +340,7 @@ export async function registerRoutes(app: Express): Promise<Server> {
|
||||
}
|
||||
});
|
||||
|
||||
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);
|
||||
|
||||
Reference in new issue
Block a user