From 35c06b0b15a89fa54b40e94a0bcfcf77c4249ab4 Mon Sep 17 00:00:00 2001 From: rijkvanzanten Date: Mon, 19 Oct 2020 15:27:05 -0400 Subject: [PATCH 1/3] Throw forbidden exception on 404 --- api/src/services/items.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/api/src/services/items.ts b/api/src/services/items.ts index 515f5a0cda..bee4bd0ad0 100644 --- a/api/src/services/items.ts +++ b/api/src/services/items.ts @@ -24,6 +24,7 @@ import { AuthorizationService } from './authorization'; import { pick, clone, cloneDeep } from 'lodash'; import getDefaultValue from '../utils/get-default-value'; import { InvalidPayloadException } from '../exceptions'; +import { ForbiddenException } from '../../dist/exceptions'; export class ItemsService implements AbstractService { collection: string; @@ -256,6 +257,9 @@ export class ItemsService implements AbstractService { } const result = await runAST(ast, { knex: this.knex }); + + if (result === null) throw new ForbiddenException(); + return result; } From a6908c2963f8abfc55a7cf3bc72c3cb759b1b8fa Mon Sep 17 00:00:00 2001 From: rijkvanzanten Date: Mon, 19 Oct 2020 15:29:11 -0400 Subject: [PATCH 2/3] VS Code, why. --- api/src/services/items.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/src/services/items.ts b/api/src/services/items.ts index bee4bd0ad0..cb28ca0607 100644 --- a/api/src/services/items.ts +++ b/api/src/services/items.ts @@ -24,7 +24,7 @@ import { AuthorizationService } from './authorization'; import { pick, clone, cloneDeep } from 'lodash'; import getDefaultValue from '../utils/get-default-value'; import { InvalidPayloadException } from '../exceptions'; -import { ForbiddenException } from '../../dist/exceptions'; +import { ForbiddenException } from '../exceptions'; export class ItemsService implements AbstractService { collection: string; From fed57e9bc6c72e7614a61579501aabb31a720a25 Mon Sep 17 00:00:00 2001 From: rijkvanzanten Date: Mon, 19 Oct 2020 15:32:53 -0400 Subject: [PATCH 3/3] Close permissions drawer if permissions row doesn't exist --- .../routes/roles/permissions-detail/permissions-detail.vue | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/src/modules/settings/routes/roles/permissions-detail/permissions-detail.vue b/app/src/modules/settings/routes/roles/permissions-detail/permissions-detail.vue index 8f88f260c2..2a3712e3c4 100644 --- a/app/src/modules/settings/routes/roles/permissions-detail/permissions-detail.vue +++ b/app/src/modules/settings/routes/roles/permissions-detail/permissions-detail.vue @@ -142,6 +142,10 @@ export default defineComponent({ permission.value = response.data.data; } catch (err) { error.value = err; + + if (err?.response?.status === 403) { + router.push(`/settings/roles/${props.roleKey || 'public'}`); + } } finally { loading.value = false; }