Files
LogiFlow/fix-production-employee-permissions-final.sql
T
michaelschal 632eb8dd82 Enable employees to create customer orders and DLC products
Fixes production issues preventing employees from creating customer orders and DLC products by ensuring correct permissions, cache invalidation, and backend route configurations.

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/rEII9fE
2025-08-12 14:40:17 +00:00

94 lines
2.9 KiB
SQL

-- Fix urgent production: permissions employé pour commandes client et DLC
-- À exécuter sur la base de production
-- 1. Vérifier les permissions actuelles pour le rôle employé
SELECT
p.name as permission_name,
p.category,
CASE WHEN rp.permission_id IS NOT NULL THEN 'GRANTED' ELSE 'DENIED' END as status
FROM permissions p
LEFT JOIN role_permissions rp ON p.id = rp.permission_id
AND rp.role_id = (SELECT id FROM roles WHERE name = 'employee')
WHERE p.category IN ('customer-orders', 'dlc')
ORDER BY p.category, p.name;
-- 2. Vérifier si le rôle employé existe
SELECT * FROM roles WHERE name = 'employee';
-- 3. Obtenir l'ID du rôle employé
SELECT id FROM roles WHERE name = 'employee';
-- 4. Vérifier les permissions requises qui pourraient manquer
SELECT id, name, category, description
FROM permissions
WHERE category IN ('customer-orders', 'dlc')
AND name IN ('create', 'view')
AND id NOT IN (
SELECT permission_id
FROM role_permissions
WHERE role_id = (SELECT id FROM roles WHERE name = 'employee')
);
-- 5. Si des permissions manquent, les ajouter (À DÉCOMMENTER SI NÉCESSAIRE)
/*
-- Ajouter permission créer commandes client pour employé
INSERT INTO role_permissions (role_id, permission_id, assigned_by, created_at)
SELECT
(SELECT id FROM roles WHERE name = 'employee'),
p.id,
'system_fix',
NOW()
FROM permissions p
WHERE p.category = 'customer-orders'
AND p.name = 'create'
AND NOT EXISTS (
SELECT 1 FROM role_permissions rp
WHERE rp.role_id = (SELECT id FROM roles WHERE name = 'employee')
AND rp.permission_id = p.id
);
-- Ajouter permission créer DLC pour employé
INSERT INTO role_permissions (role_id, permission_id, assigned_by, created_at)
SELECT
(SELECT id FROM roles WHERE name = 'employee'),
p.id,
'system_fix',
NOW()
FROM permissions p
WHERE p.category = 'dlc'
AND p.name = 'create'
AND NOT EXISTS (
SELECT 1 FROM role_permissions rp
WHERE rp.role_id = (SELECT id FROM roles WHERE name = 'employee')
AND rp.permission_id = p.id
);
*/
-- 6. Vérifier l'utilisateur qui a des problèmes
SELECT
u.id,
u.username,
u.role,
u.first_name,
u.last_name,
COUNT(ug.group_id) as group_count
FROM users u
LEFT JOIN user_groups ug ON u.id = ug.user_id
WHERE u.id = '_1753266816257'
GROUP BY u.id, u.username, u.role, u.first_name, u.last_name;
-- 7. Vérifier les groupes de l'utilisateur
SELECT
ug.user_id,
ug.group_id,
g.name as group_name,
g.color as group_color
FROM user_groups ug
JOIN groups g ON ug.group_id = g.id
WHERE ug.user_id = '_1753266816257';
-- Notes pour le debugging:
-- - Si pas de résultats dans requête 4: permissions OK
-- - Si résultats dans requête 4: décommenter section 5
-- - Vérifier que l'utilisateur a bien un groupe assigné
-- - Le problème peut être côté frontend si permissions OK