From 2156a9811b6b135a4c32421b1344b12339e63205 Mon Sep 17 00:00:00 2001 From: Anton Tranelis Date: Mon, 29 Jul 2024 08:58:14 +0200 Subject: [PATCH] advaneced permission logic --- src/Components/Map/hooks/usePermissions.tsx | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/Components/Map/hooks/usePermissions.tsx b/src/Components/Map/hooks/usePermissions.tsx index d0dd9bbb..3b557c71 100644 --- a/src/Components/Map/hooks/usePermissions.tsx +++ b/src/Components/Map/hooks/usePermissions.tsx @@ -80,7 +80,11 @@ function usePermissionsManager(initialPermissions: Permission[]): { }; const evaluatePermissions = (permissionConditions: any) => { - return permissionConditions._and?.every((andCondition: any) => + if (!permissionConditions || !permissionConditions._and) { + return true; + } + + return permissionConditions._and.every((andCondition: any) => andCondition._or ? andCondition._or.some((orCondition: any) => evaluateCondition(orCondition)) : evaluateCondition(andCondition) @@ -96,12 +100,12 @@ function usePermissionsManager(initialPermissions: Permission[]): { ( (p.role === user?.role && ( - !item || !p.permissions || evaluatePermissions(p.permissions) + !item || evaluatePermissions(p.permissions) )) || (p.role == null && ( (layer?.public_edit_items || item?.layer?.public_edit_items) && - (!item || !p.permissions || evaluatePermissions(p.permissions)) + (!item || evaluatePermissions(p.permissions)) )) ) );