From ca650babaf94f898b39a8a2b96fcd66d483eef01 Mon Sep 17 00:00:00 2001 From: Benny Joo Date: Mon, 3 Feb 2025 05:36:24 +0000 Subject: [PATCH] fix: username is visible in private booking link (#19054) --- packages/features/bookings/Booker/Booker.tsx | 2 ++ .../bookings/Booker/components/EventMeta.tsx | 3 +++ .../components/event-meta/Members.tsx | 22 +++++++++++++------ 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/packages/features/bookings/Booker/Booker.tsx b/packages/features/bookings/Booker/Booker.tsx index 582a3669de..816aa71fb5 100644 --- a/packages/features/bookings/Booker/Booker.tsx +++ b/packages/features/bookings/Booker/Booker.tsx @@ -78,6 +78,7 @@ const BookerComponent = ({ hasValidLicense, isBookingDryRun: isBookingDryRunProp, renderCaptcha, + hashedLink, }: BookerProps & WrappedBookerProps) => { const searchParams = useCompatSearchParams(); const isPlatformBookerEmbed = useIsPlatformBookerEmbed(); @@ -389,6 +390,7 @@ const BookerComponent = ({ event={event.data} isPending={event.isPending} isPlatform={isPlatform} + isPrivateLink={!!hashedLink} locale={userLocale} /> {layout !== BookerLayouts.MONTH_VIEW && diff --git a/packages/features/bookings/Booker/components/EventMeta.tsx b/packages/features/bookings/Booker/components/EventMeta.tsx index 4b3b97da55..0c3c4f4f66 100644 --- a/packages/features/bookings/Booker/components/EventMeta.tsx +++ b/packages/features/bookings/Booker/components/EventMeta.tsx @@ -47,6 +47,7 @@ export const EventMeta = ({ event, isPending, isPlatform = true, + isPrivateLink, classNames, locale, }: { @@ -73,6 +74,7 @@ export const EventMeta = ({ | "autoTranslateDescriptionEnabled" > | null; isPending: boolean; + isPrivateLink: boolean; isPlatform?: boolean; classNames?: { eventMetaContainer?: string; @@ -153,6 +155,7 @@ export const EventMeta = ({ users={event.subsetOfUsers} profile={event.profile} entity={event.entity} + isPrivateLink={isPrivateLink} /> {translatedTitle ?? event?.title} diff --git a/packages/features/bookings/components/event-meta/Members.tsx b/packages/features/bookings/components/event-meta/Members.tsx index 1aecca0cb6..739da1939d 100644 --- a/packages/features/bookings/components/event-meta/Members.tsx +++ b/packages/features/bookings/components/event-meta/Members.tsx @@ -17,9 +17,16 @@ export interface EventMembersProps { users: BookerEvent["subsetOfUsers"]; profile: BookerEvent["profile"]; entity: BookerEvent["entity"]; + isPrivateLink: boolean; } -export const EventMembers = ({ schedulingType, users, profile, entity }: EventMembersProps) => { +export const EventMembers = ({ + schedulingType, + users, + profile, + entity, + isPrivateLink, +}: EventMembersProps) => { const username = useBookerStore((state) => state.username); const isDynamic = !!(username && username.indexOf("+") > -1); const isEmbed = useIsEmbed(); @@ -40,7 +47,7 @@ export const EventMembers = ({ schedulingType, users, profile, entity }: EventMe { // We don't want booker to be able to see the list of other users or teams inside the embed href: - isEmbed || isPlatform + isEmbed || isPlatform || isPrivateLink ? null : entity.teamSlug ? getTeamUrlSync({ orgSlug: entity.orgSlug, teamSlug: entity.teamSlug }) @@ -59,11 +66,12 @@ export const EventMembers = ({ schedulingType, users, profile, entity }: EventMe items={[ ...orgOrTeamAvatarItem, ...shownUsers.map((user) => ({ - href: isPlatform - ? null - : `${getBookerBaseUrlSync(user.profile?.organization?.slug ?? null)}/${ - user.profile?.username - }?redirect=false`, + href: + isPlatform || isPrivateLink + ? null + : `${getBookerBaseUrlSync(user.profile?.organization?.slug ?? null)}/${ + user.profile?.username + }?redirect=false`, alt: user.name || "", title: user.name || "", image: getUserAvatarUrl(user),