From 26fef5ba2980b4ce692a222673cb3b0c4913518d Mon Sep 17 00:00:00 2001 From: michaelschal <35957947-michaelschal@users.noreply.replit.com> Date: Wed, 3 Sep 2025 08:18:21 +0000 Subject: [PATCH] Improve access control for reconciliation validation and editing features Update reconciliation page to use role-based permissions instead of hardcoded admin checks for validation and editing actions. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 28b81ac1-a55f-409c-b6a9-88ad420d8a9a Replit-Commit-Checkpoint-Type: full_checkpoint --- client/src/pages/BLReconciliation.tsx | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/client/src/pages/BLReconciliation.tsx b/client/src/pages/BLReconciliation.tsx index fab3ba1..146fdc4 100644 --- a/client/src/pages/BLReconciliation.tsx +++ b/client/src/pages/BLReconciliation.tsx @@ -539,10 +539,10 @@ export default function BLReconciliation() { }; const handleDevalidateReconciliation = async (deliveryId: number) => { - if (user?.role !== 'admin') { + if (!permissions.canEdit('reconciliation') && !permissions.canValidate('reconciliation')) { toast({ title: "Accès refusé", - description: "Seuls les administrateurs peuvent dévalider les rapprochements", + description: "Vous n'avez pas les permissions nécessaires pour dévalider les rapprochements", variant: "destructive", }); return; @@ -1019,10 +1019,10 @@ export default function BLReconciliation() {

Mode rapprochement automatique

Les livraisons de fournisseurs en mode automatique sont validées automatiquement lorsqu'elles ont le statut "delivered" et un numéro de BL. - {user?.role === 'admin' ? ( + {(permissions.canEdit('reconciliation') || permissions.canValidate('reconciliation')) ? ( " Vous pouvez dévalider ces rapprochements si nécessaire." ) : ( - " Seuls les administrateurs peuvent dévalider ces rapprochements." + " Seuls les utilisateurs autorisés peuvent dévalider ces rapprochements." )}

@@ -1129,7 +1129,7 @@ export default function BLReconciliation() { )} - {user?.role === 'admin' && ( + {(permissions.canEdit('reconciliation') || permissions.canValidate('reconciliation')) && (