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) => {
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() {
<h4 className="text-sm font-medium text-blue-900">Mode rapprochement automatique</h4>
<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.
{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."
)}
</p>
</div>
@@ -1129,7 +1129,7 @@ export default function BLReconciliation() {
<Upload className="w-4 h-4" />
</button>
)}
{user?.role === 'admin' && (
{(permissions.canEdit('reconciliation') || permissions.canValidate('reconciliation')) && (
<button
onClick={() => handleDevalidateReconciliation(delivery.id)}
className="text-gray-600 hover:text-orange-600 transition-colors duration-200 p-1 hover:bg-orange-50 rounded"