diff --git a/apps/webapp/app/components/navigation/SideMenu.tsx b/apps/webapp/app/components/navigation/SideMenu.tsx index 48cbe2fda4..93e6b13420 100644 --- a/apps/webapp/app/components/navigation/SideMenu.tsx +++ b/apps/webapp/app/components/navigation/SideMenu.tsx @@ -274,7 +274,7 @@ export function SideMenu({ to={v3TestPath(organization, project, environment)} data-action="test" /> - {(user.admin || featureFlags.hasQueryAccess) && ( + {(user.admin || user.isImpersonating || featureFlags.hasQueryAccess) && ( { - if (isAdmin) { + if (isAdmin || isImpersonating) { return true; } @@ -117,7 +118,7 @@ export const loader = async ({ request, params }: LoaderFunctionArgs) => { const user = await requireUser(request); const { projectParam, organizationSlug, envParam } = EnvironmentParamSchema.parse(params); - const canAccess = await hasQueryAccess(user.id, user.admin, organizationSlug); + const canAccess = await hasQueryAccess(user.id, user.admin, user.isImpersonating, organizationSlug); if (!canAccess) { throw redirect("/"); } @@ -158,7 +159,7 @@ export const action = async ({ request, params }: ActionFunctionArgs) => { const user = await requireUser(request); const { projectParam, organizationSlug, envParam } = EnvironmentParamSchema.parse(params); - const canAccess = await hasQueryAccess(user.id, user.admin, organizationSlug); + const canAccess = await hasQueryAccess(user.id, user.admin, user.isImpersonating, organizationSlug); if (!canAccess) { return typedjson( { error: "Unauthorized", rows: null, columns: null, stats: null },