@@ -10,7 +10,6 @@ import { getServerSession } from "@calcom/features/auth/lib/getServerSession";
1010import { BookingRepository } from "@calcom/features/bookings/repositories/BookingRepository" ;
1111import { OrganizationRepository } from "@calcom/features/ee/organizations/repositories/OrganizationRepository" ;
1212import { EventTypeRepository } from "@calcom/features/eventtypes/repositories/eventTypeRepository" ;
13- import { FeaturesRepository } from "@calcom/features/flags/features.repository" ;
1413import { getCalVideoReference } from "@calcom/features/get-cal-video-reference" ;
1514import { UserRepository } from "@calcom/features/users/repositories/UserRepository" ;
1615import { CAL_VIDEO_MEETING_LINK_FOR_TESTING } from "@calcom/lib/constants" ;
@@ -26,6 +25,7 @@ type CalVideoSettings = {
2625 enableAutomaticRecordingForOrganizer : boolean ;
2726 disableTranscriptionForGuests : boolean ;
2827 disableTranscriptionForOrganizer : boolean ;
28+ requireEmailForGuests : boolean ;
2929} ;
3030
3131const shouldEnableRecordButton = ( {
@@ -124,7 +124,7 @@ export async function getServerSideProps(context: GetServerSidePropsContext) {
124124 const { req } = context ;
125125
126126 const bookingRepo = new BookingRepository ( prisma ) ;
127- const booking = await bookingRepo . findBookingForMeetingPage ( {
127+ const booking = await bookingRepo . findBookingIncludeCalVideoSettingsAndReferences ( {
128128 bookingUid : context . query . uid as string ,
129129 } ) ;
130130
@@ -211,6 +211,7 @@ export async function getServerSideProps(context: GetServerSidePropsContext) {
211211 } ) ;
212212
213213 const sessionUserId = session ?. user ?. impersonatedBy ? session . user . impersonatedBy . id : session ?. user . id ;
214+ const sessionUserEmail = session ?. user ?. email ;
214215 const isOrganizer = await checkIfUserIsHost ( {
215216 booking : {
216217 eventTypeId : bookingObj . eventType ?. id ,
@@ -219,18 +220,25 @@ export async function getServerSideProps(context: GetServerSidePropsContext) {
219220 sessionUserId,
220221 } ) ;
221222
223+ const isAttendee = sessionUserEmail
224+ ? bookingObj . attendees ?. some (
225+ ( attendee ) => attendee . email . toLowerCase ( ) === sessionUserEmail . toLowerCase ( )
226+ ) ?? false
227+ : false ;
228+
222229 // set meetingPassword for guests
223230 if ( ! isOrganizer ) {
231+ const userIdForToken = sessionUserId ;
232+
224233 const guestMeetingPassword = await generateGuestMeetingTokenFromOwnerMeetingToken ( {
225234 meetingToken : videoReferencePassword ,
226- userId : sessionUserId ,
235+ userId : userIdForToken ,
227236 } ) ;
228237
229238 bookingObj . references . forEach ( ( bookRef ) => {
230239 bookRef . meetingPassword = guestMeetingPassword ;
231240 } ) ;
232241 }
233-
234242 // Only for backward compatibility and setting user id in participants for organizer
235243 else {
236244 const meetingPassword = await setEnableRecordingUIAndUserIdForOrganizer (
@@ -247,11 +255,6 @@ export async function getServerSideProps(context: GetServerSidePropsContext) {
247255
248256 const videoReference = getCalVideoReference ( bookingObj . references ) ;
249257
250- const featureRepo = new FeaturesRepository ( prisma ) ;
251- const displayLogInOverlay = profile ?. organizationId
252- ? await featureRepo . checkIfTeamHasFeature ( profile . organizationId , "cal-video-log-in-overlay" )
253- : false ;
254-
255258 const showRecordingButton = shouldEnableRecordButton ( {
256259 hasTeamPlan : ! ! hasTeamPlan ,
257260 calVideoSettings : bookingObj . eventType ?. calVideoSettings ,
@@ -293,7 +296,6 @@ export async function getServerSideProps(context: GetServerSidePropsContext) {
293296 } ,
294297 hasTeamPlan : ! ! hasTeamPlan ,
295298 calVideoLogo,
296- displayLogInOverlay,
297299 loggedInUserName : sessionUserId ? session ?. user ?. name : undefined ,
298300 showRecordingButton,
299301 enableAutomaticTranscription,
@@ -303,6 +305,8 @@ export async function getServerSideProps(context: GetServerSidePropsContext) {
303305 ? undefined
304306 : bookingObj . eventType ?. calVideoSettings ?. redirectUrlOnExit ,
305307 overrideName : Array . isArray ( context . query . name ) ? context . query . name [ 0 ] : context . query . name ,
308+ requireEmailForGuests : bookingObj . eventType ?. calVideoSettings ?. requireEmailForGuests ?? false ,
309+ isLoggedInUserPartOfMeeting : isAttendee || isOrganizer ,
306310 } ,
307311 } ;
308312}
0 commit comments