From 54d37bf930cd2e81f09ad97e6d20d86bf275b281 Mon Sep 17 00:00:00 2001 From: rijkvanzanten Date: Mon, 31 Aug 2020 15:17:28 -0400 Subject: [PATCH] Add save permissions --- .../modules/collections/routes/detail/detail.vue | 16 +++++++++++++--- app/src/utils/is-allowed.ts | 4 +++- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/app/src/modules/collections/routes/detail/detail.vue b/app/src/modules/collections/routes/detail/detail.vue index ae1a3e0344..c068eba0b8 100644 --- a/app/src/modules/collections/routes/detail/detail.vue +++ b/app/src/modules/collections/routes/detail/detail.vue @@ -133,6 +133,7 @@ isAllowed(collection.value, 'delete', item.value)); - const saveAllowed = computed(() => isAllowed(collection.value, 'update', item.value)); + const saveAllowed = computed(() => { + if (isNew.value) { + return true; + } + + return isAllowed(collection.value, 'update', item.value); + }); + const updateAllowed = computed(() => isAllowed(collection.value, 'update', item.value)); + const softDeleteAllowed = computed(() => { if (!collectionInfo.value?.meta?.soft_delete_field) return false; @@ -394,7 +404,7 @@ export default defineComponent({ }); }); - return { deleteAllowed, saveAllowed, softDeleteAllowed }; + return { deleteAllowed, saveAllowed, softDeleteAllowed, updateAllowed }; } }, }); diff --git a/app/src/utils/is-allowed.ts b/app/src/utils/is-allowed.ts index bae657bab7..904b10c379 100644 --- a/app/src/utils/is-allowed.ts +++ b/app/src/utils/is-allowed.ts @@ -10,7 +10,9 @@ export function isAllowed(collection: string, action: Permission['action'], valu const permissions = permissionsStore.state.permissions; - const permissionInfo = permissions.find((permission) => permission.action === action); + const permissionInfo = permissions.find( + (permission) => permission.action === action && permission.collection === collection + ); if (!permissionInfo) return false;