diff --git a/apps/web/modules/event-types/views/event-types-single-view.getServerSideProps.tsx b/apps/web/modules/event-types/views/event-types-single-view.getServerSideProps.tsx index dae0a1bf1b..8a2034b2cf 100644 --- a/apps/web/modules/event-types/views/event-types-single-view.getServerSideProps.tsx +++ b/apps/web/modules/event-types/views/event-types-single-view.getServerSideProps.tsx @@ -34,11 +34,26 @@ export const getServerSideProps = async (context: GetServerSidePropsContext) => } as const; return redirect; } - - await ssr.viewer.eventTypes.get.prefetch({ id: typeParam }); - - const { eventType } = await ssr.viewer.eventTypes.get.fetch({ id: typeParam }); - + const getEventTypeById = async (eventTypeId: number) => { + await ssr.viewer.eventTypes.get.prefetch({ id: eventTypeId }); + try { + const { eventType } = await ssr.viewer.eventTypes.get.fetch({ id: eventTypeId }); + return eventType; + } catch (e: unknown) { + // reject, user has no access to this event type. + return null; + } + }; + const eventType = await getEventTypeById(typeParam); + if (!eventType) { + const redirect = { + redirect: { + permanent: false, + destination: "/event-types", + }, + } as const; + return redirect; + } return { props: { eventType, diff --git a/packages/trpc/server/routers/viewer/eventTypes/util.ts b/packages/trpc/server/routers/viewer/eventTypes/util.ts index 857311622c..5e4c179d3b 100644 --- a/packages/trpc/server/routers/viewer/eventTypes/util.ts +++ b/packages/trpc/server/routers/viewer/eventTypes/util.ts @@ -56,8 +56,7 @@ export const eventOwnerProcedure = authedProcedure })(); if (!isAuthorized) { - console.warn(`User ${ctx.user.id} attempted to an access an event ${event.id} they do not own.`); - throw new TRPCError({ code: "UNAUTHORIZED" }); + throw new TRPCError({ code: "FORBIDDEN" }); } const isAllowed = (function () {