From 07ea3870baae4786a0648dbfa2e1f6ed0ffa90ad Mon Sep 17 00:00:00 2001 From: rijkvanzanten Date: Wed, 17 Feb 2021 10:32:49 -0500 Subject: [PATCH] Fix revisions permissions check for admin users Fixes #4114 --- app/src/composables/use-permissions.ts | 9 ++++++++- app/src/modules/collections/routes/item.vue | 14 +++----------- app/src/modules/files/routes/item.vue | 19 +++++++------------ app/src/modules/users/routes/item.vue | 17 ++++------------- 4 files changed, 22 insertions(+), 37 deletions(-) diff --git a/app/src/composables/use-permissions.ts b/app/src/composables/use-permissions.ts index 260e9f55e0..f2454472d5 100644 --- a/app/src/composables/use-permissions.ts +++ b/app/src/composables/use-permissions.ts @@ -74,5 +74,12 @@ export function usePermissions(collection: Ref, item: Ref, isNew: R return fields; }); - return { deleteAllowed, saveAllowed, archiveAllowed, updateAllowed, fields }; + const revisionsAllowed = computed(() => { + if (userStore.state.currentUser?.role?.admin_access === true) return true; + return !!permissionsStore.state.permissions.find( + (permission) => permission.collection === 'directus_revisions' && permission.action === 'read' + ); + }); + + return { deleteAllowed, saveAllowed, archiveAllowed, updateAllowed, fields, revisionsAllowed }; } diff --git a/app/src/modules/collections/routes/item.vue b/app/src/modules/collections/routes/item.vue index 607f1a1514..01594b6e24 100644 --- a/app/src/modules/collections/routes/item.vue +++ b/app/src/modules/collections/routes/item.vue @@ -174,7 +174,7 @@
(); - const permissionsStore = usePermissionsStore(); - - const hasRevisionsPermissions = computed(() => { - return !!permissionsStore.state.permissions.find( - (permission) => permission.collection === 'directus_revisions' && permission.action === 'read' - ); - }); const { collection, primaryKey } = toRefs(props); const { breadcrumb } = useBreadcrumb(); @@ -324,7 +316,7 @@ export default defineComponent({ return next(); }; - const { deleteAllowed, archiveAllowed, saveAllowed, updateAllowed, fields } = usePermissions( + const { deleteAllowed, archiveAllowed, saveAllowed, updateAllowed, fields, revisionsAllowed } = usePermissions( collection, item, isNew @@ -379,7 +371,7 @@ export default defineComponent({ fields, isSingleton, _primaryKey, - hasRevisionsPermissions, + revisionsAllowed, }; function useBreadcrumb() { diff --git a/app/src/modules/files/routes/item.vue b/app/src/modules/files/routes/item.vue index 4730e8f31b..d90569ff81 100644 --- a/app/src/modules/files/routes/item.vue +++ b/app/src/modules/files/routes/item.vue @@ -157,7 +157,7 @@