Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion apps/webapp/app/components/navigation/SideMenu.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -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) && (
<SideMenuItem
name="Query"
icon={TableCellsIcon}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,9 +77,10 @@ import { querySchemas } from "~/v3/querySchemas";
async function hasQueryAccess(
userId: string,
isAdmin: boolean,
isImpersonating: boolean,
organizationSlug: string
): Promise<boolean> {
if (isAdmin) {
if (isAdmin || isImpersonating) {
return true;
}

Expand Down Expand Up @@ -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("/");
}
Expand Down Expand Up @@ -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 },
Expand Down
Loading