fix some issues with th previous fix

This commit is contained in:
Anton Tranelis 2024-10-31 12:04:57 +01:00
parent 97add15469
commit 0cef378cd6

View File

@ -74,6 +74,16 @@ function usePermissionsManager(initialPermissions: Permission[]): {
item?: Item, item?: Item,
layer?: LayerProps layer?: LayerProps
) => { ) => {
console.log(layer?.name);
console.log(user?.role.name);
console.log(action);
console.log(permissions.filter(p => p.policy.name === user?.role.name || (p.policy.name === "$t:public_label" && !user)));
const evaluateCondition = (condition: any) => { const evaluateCondition = (condition: any) => {
if (condition.user_created?._eq === "$CURRENT_USER") { if (condition.user_created?._eq === "$CURRENT_USER") {
return item?.user_created?.id === user?.id; return item?.user_created?.id === user?.id;
@ -95,29 +105,27 @@ function usePermissionsManager(initialPermissions: Permission[]): {
: evaluateCondition(andCondition) : evaluateCondition(andCondition)
); );
}; };
if (collectionName === "items" && action === "create" && layer?.public_edit_items) return true;
// Bedingung für leere Berechtigungen nur, wenn NICHT item und create // Bedingung für leere Berechtigungen nur, wenn NICHT item und create
if (permissions.length === 0 && !(collectionName === "item" && action === "create")) return true; if (permissions.length === 0) return true;
else if (user && user.role.id === adminRole) return true; else if (user && user.role.id === adminRole) return true;
else { else {
return permissions.some(p => return permissions.some(p =>
p.action === action && p.action === action &&
p.collection === collectionName && p.collection === collectionName &&
(
// Neue Bedingung für "item" und "create"
(collectionName === "item" && action === "create" && layer?.public_edit_items === true) ||
( (
(p.policy.name === user?.role.name && (p.policy.name === user?.role.name &&
( (
!item || evaluatePermissions(p.permissions) !item || evaluatePermissions(p.permissions)
)) || )) ||
(p.policy == null && (p.policy === "$t:public_label" &&
( (
(layer?.public_edit_items || item?.layer?.public_edit_items) && (layer?.public_edit_items || item?.layer?.public_edit_items) &&
(!item || evaluatePermissions(p.permissions)) (!item || evaluatePermissions(p.permissions))
)) ))
) )
)
); );
} }
}, },