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
This commit is contained in:
michaelschal committed 2025-09-03 08:18:21 +00:00
1 parent bc936c285b
commit 26fef5ba29
1 file changed
+5 -5
+5 -5
View File
@@ -539,10 +539,10 @@ export default function BLReconciliation() {
}; };
const handleDevalidateReconciliation = async (deliveryId: number) => { const handleDevalidateReconciliation = async (deliveryId: number) => {
if (user?.role !== 'admin') { if (!permissions.canEdit('reconciliation') && !permissions.canValidate('reconciliation')) {
toast({ toast({
title: "Accès refusé", 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", variant: "destructive",
}); });
return; return;
@@ -1019,10 +1019,10 @@ export default function BLReconciliation() {
<h4 className="text-sm font-medium text-blue-900">Mode rapprochement automatique</h4> <h4 className="text-sm font-medium text-blue-900">Mode rapprochement automatique</h4>
<p className="text-sm text-blue-700 mt-1"> <p className="text-sm text-blue-700 mt-1">
Les livraisons de fournisseurs en mode automatique sont validées automatiquement lorsqu'elles ont le statut "delivered" et un numéro de BL. 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." " 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."
)} )}
</p> </p>
</div> </div>
@@ -1129,7 +1129,7 @@ export default function BLReconciliation() {
<Upload className="w-4 h-4" /> <Upload className="w-4 h-4" />
</button> </button>
)} )}
{user?.role === 'admin' && ( {(permissions.canEdit('reconciliation') || permissions.canValidate('reconciliation')) && (
<button <button
onClick={() => handleDevalidateReconciliation(delivery.id)} onClick={() => handleDevalidateReconciliation(delivery.id)}
className="text-gray-600 hover:text-orange-600 transition-colors duration-200 p-1 hover:bg-orange-50 rounded" className="text-gray-600 hover:text-orange-600 transition-colors duration-200 p-1 hover:bg-orange-50 rounded"