advaneced permission logic

This commit is contained in:
Anton Tranelis 2024-07-29 08:58:14 +02:00
parent 431f8df132
commit 2156a9811b

View File

@ -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))
))
)
);