From dd00dfbbfd6e9c9a9c38b8878f07fdecf2ef0416 Mon Sep 17 00:00:00 2001 From: Azri Kahar <42867097+azrikahar@users.noreply.github.com> Date: Thu, 23 Jun 2022 23:15:38 +0800 Subject: [PATCH] Allow admin to import into system collections (#14065) * allow admin to import into system collections * add refresh event after import to relevant pages * make sure it's limited to admin users --- api/src/services/import-export.ts | 2 +- app/src/modules/files/routes/collection.vue | 1 + .../modules/settings/routes/presets/collection/collection.vue | 2 +- app/src/modules/users/routes/collection.vue | 1 + 4 files changed, 4 insertions(+), 2 deletions(-) diff --git a/api/src/services/import-export.ts b/api/src/services/import-export.ts index e8aa24578e..0841e42a98 100644 --- a/api/src/services/import-export.ts +++ b/api/src/services/import-export.ts @@ -39,7 +39,7 @@ export class ImportService { } async import(collection: string, mimetype: string, stream: NodeJS.ReadableStream): Promise { - if (collection.startsWith('directus_')) throw new ForbiddenException(); + if (this.accountability?.admin !== true && collection.startsWith('directus_')) throw new ForbiddenException(); const createPermissions = this.accountability?.permissions?.find( (permission) => permission.collection === collection && permission.action === 'create' diff --git a/app/src/modules/files/routes/collection.vue b/app/src/modules/files/routes/collection.vue index f3f058b274..937fbbff15 100644 --- a/app/src/modules/files/routes/collection.vue +++ b/app/src/modules/files/routes/collection.vue @@ -170,6 +170,7 @@ :layout-query="layoutQuery" :filter="mergeFilters(filter, folderTypeFilter)" :search="search" + @refresh="refresh" /> diff --git a/app/src/modules/settings/routes/presets/collection/collection.vue b/app/src/modules/settings/routes/presets/collection/collection.vue index b141b653c7..a9184ac2dc 100644 --- a/app/src/modules/settings/routes/presets/collection/collection.vue +++ b/app/src/modules/settings/routes/presets/collection/collection.vue @@ -123,7 +123,7 @@ - + diff --git a/app/src/modules/users/routes/collection.vue b/app/src/modules/users/routes/collection.vue index c6064430f5..fa73bdd7af 100644 --- a/app/src/modules/users/routes/collection.vue +++ b/app/src/modules/users/routes/collection.vue @@ -154,6 +154,7 @@ :layout-query="layoutQuery" :filter="mergeFilters(filter, roleFilter)" :search="search" + @refresh="refresh" />