From 3acaaf6719fe2774def9e94583c2a0559352ab6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nuno=20G=C3=B3is?= Date: Mon, 22 Jul 2024 15:32:35 +0100 Subject: [PATCH] fix: check for admin in signal endpoints hook (#7642) This avoids a 403 on `api/admin/signal-endpoints` for non-admins when browsing the integrations page. --- .../api/getters/useSignalEndpoints/useSignalEndpoints.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/frontend/src/hooks/api/getters/useSignalEndpoints/useSignalEndpoints.ts b/frontend/src/hooks/api/getters/useSignalEndpoints/useSignalEndpoints.ts index dac7c82e3f..2c2943757c 100644 --- a/frontend/src/hooks/api/getters/useSignalEndpoints/useSignalEndpoints.ts +++ b/frontend/src/hooks/api/getters/useSignalEndpoints/useSignalEndpoints.ts @@ -1,10 +1,11 @@ -import { useMemo } from 'react'; +import { useContext, useMemo } from 'react'; import { formatApiPath } from 'utils/formatPath'; import handleErrorResponses from '../httpErrorResponseHandler'; import { useConditionalSWR } from '../useConditionalSWR/useConditionalSWR'; import useUiConfig from '../useUiConfig/useUiConfig'; import type { ISignalEndpoint } from 'interfaces/signal'; import { useUiFlag } from 'hooks/useUiFlag'; +import AccessContext from 'contexts/AccessContext'; const ENDPOINT = 'api/admin/signal-endpoints'; @@ -13,13 +14,14 @@ const DEFAULT_DATA = { }; export const useSignalEndpoints = () => { + const { isAdmin } = useContext(AccessContext); const { isEnterprise } = useUiConfig(); const signalsEnabled = useUiFlag('signals'); const { data, error, mutate } = useConditionalSWR<{ signalEndpoints: ISignalEndpoint[]; }>( - isEnterprise() && signalsEnabled, + isEnterprise() && isAdmin && signalsEnabled, DEFAULT_DATA, formatApiPath(ENDPOINT), fetcher,