Rename room config properties to remove redundant "config" suffix

This commit is contained in:
juancarmore 2025-09-18 09:48:19 +02:00
parent 390dbe3600
commit 465a68295f
31 changed files with 193 additions and 191 deletions

View File

@ -8,9 +8,9 @@ content:
$ref: '../schemas/meet-room-config.yaml#/MeetRoomConfig'
example:
config:
chatConfig:
chat:
enabled: true
recordingConfig:
recording:
enabled: false
virtualBackgroundConfig:
virtualBackground:
enabled: true

View File

@ -15,11 +15,11 @@ content:
withMeeting: when_meeting_ends
withRecordings: close
config:
chatConfig:
chat:
enabled: true
recordingConfig:
recording:
enabled: false
virtualBackgroundConfig:
virtualBackground:
enabled: true
moderatorUrl: 'http://localhost:6080/room/room-123?secret=123456'
speakerUrl: 'http://localhost:6080/room/room-123?secret=654321'
@ -39,11 +39,11 @@ content:
creationDate: 1620000000000
autoDeletionDate: 1900000000000
config:
chatConfig:
chat:
enabled: true
recordingConfig:
recording:
enabled: false
virtualBackgroundConfig:
virtualBackground:
enabled: true
fields=moderatorUrl,speakerUrl:

View File

@ -24,11 +24,11 @@ content:
withMeeting: when_meeting_ends
withRecordings: close
config:
chatConfig:
chat:
enabled: true
recordingConfig:
recording:
enabled: false
virtualBackgroundConfig:
virtualBackground:
enabled: true
moderatorUrl: 'http://localhost:6080/room/room-123?secret=123456'
speakerUrl: 'http://localhost:6080/room/room-123?secret=654321'
@ -42,11 +42,11 @@ content:
withMeeting: when_meeting_ends
withRecordings: close
config:
chatConfig:
chat:
enabled: false
recordingConfig:
recording:
enabled: true
virtualBackgroundConfig:
virtualBackground:
enabled: false
moderatorUrl: 'http://localhost:6080/room/room-456?secret=789012'
speakerUrl: 'http://localhost:6080/room/room-456?secret=210987'
@ -74,22 +74,22 @@ content:
creationDate: 1620000000000
autoDeletionDate: 1900000000000
config:
chatConfig:
chat:
enabled: true
recordingConfig:
recording:
enabled: false
virtualBackgroundConfig:
virtualBackground:
enabled: true
- roomId: 'room-456'
roomName: 'room'
creationDate: 1620001000000
autoDeletionDate: 1900000000000
config:
chatConfig:
chat:
enabled: false
recordingConfig:
recording:
enabled: true
virtualBackgroundConfig:
virtualBackground:
enabled: false
pagination:
isTruncated: true

View File

@ -41,11 +41,11 @@ content:
roomName: room
creationDate: 1620000000000
config:
chatConfig:
chat:
enabled: true
recordingConfig:
recording:
enabled: false
virtualBackgroundConfig:
virtualBackground:
enabled: true
moderatorUrl: 'http://localhost:6080/room/room-123?secret=123456'
speakerUrl: 'http://localhost:6080/room/room-123?secret=654321'
@ -64,11 +64,11 @@ content:
roomName: room
creationDate: 1620000000000
config:
chatConfig:
chat:
enabled: true
recordingConfig:
recording:
enabled: false
virtualBackgroundConfig:
virtualBackground:
enabled: true
moderatorUrl: 'http://localhost:6080/room/room-123?secret=123456'
speakerUrl: 'http://localhost:6080/room/room-123?secret=654321'

View File

@ -26,11 +26,11 @@ content:
roomName: room
creationDate: 1620000000000
config:
chatConfig:
chat:
enabled: true
recordingConfig:
recording:
enabled: false
virtualBackgroundConfig:
virtualBackground:
enabled: true
moderatorUrl: 'http://localhost:6080/room/room-123?secret=123456'
speakerUrl: 'http://localhost:6080/room/room-123?secret=654321'
@ -45,11 +45,11 @@ content:
roomName: room
creationDate: 1620000000000
config:
chatConfig:
chat:
enabled: true
recordingConfig:
recording:
enabled: false
virtualBackgroundConfig:
virtualBackground:
enabled: true
moderatorUrl: 'http://localhost:6080/room/room-123?secret=123456'
speakerUrl: 'http://localhost:6080/room/room-123?secret=654321'
@ -64,11 +64,11 @@ content:
roomName: room
creationDate: 1620000000000
config:
chatConfig:
chat:
enabled: true
recordingConfig:
recording:
enabled: false
virtualBackgroundConfig:
virtualBackground:
enabled: true
moderatorUrl: 'http://localhost:6080/room/room-123?secret=123456'
speakerUrl: 'http://localhost:6080/room/room-123?secret=654321'

View File

@ -1,13 +1,13 @@
MeetRoomConfig:
type: object
properties:
chatConfig:
chat:
$ref: '#/MeetChatConfig'
description: Config for the chat feature in the room.
recordingConfig:
recording:
$ref: '#/MeetRecordingConfig'
description: Config for recording the room.
virtualBackgroundConfig:
virtualBackground:
$ref: '#/MeetVirtualBackgroundConfig'
description: Config for virtual background in the room.
MeetChatConfig:

View File

@ -111,11 +111,13 @@ export const logEnvVars = () => {
console.log('MEET PREFERENCES STORAGE:', text(MEET_PREFERENCES_STORAGE_MODE));
console.log('MEET INITIAL ADMIN USER: ', credential('****' + MEET_INITIAL_ADMIN_USER.slice(-3)));
console.log('MEET INITIAL ADMIN PASSWORD: ', credential('****' + MEET_INITIAL_ADMIN_PASSWORD.slice(-3)));
if (!MEET_INITIAL_API_KEY) {
console.log(chalk.red('MEET INITIAL_API_KEY: none'));
} else {
console.log('MEET INITIAL API KEY: ', credential('****' + MEET_INITIAL_API_KEY.slice(-3)));
}
console.log('MEET INITIAL WEBHOOK ENABLED:', text(MEET_INITIAL_WEBHOOK_ENABLED));
if (MEET_INITIAL_WEBHOOK_ENABLED === 'true') {

View File

@ -27,7 +27,7 @@ export const withRecordingEnabled = async (req: Request, res: Response, next: Ne
const roomId = extractRoomIdFromRequest(req);
const room: MeetRoom = await roomService.getMeetRoom(roomId!);
if (!room.config?.recordingConfig?.enabled) {
if (!room.config.recording.enabled) {
logger.debug(`Recording is disabled for room '${roomId}'`);
const error = errorRecordingDisabled(roomId!);
return rejectRequestFromMeetError(res, error);

View File

@ -90,9 +90,9 @@ const VirtualBackgroundConfigSchema: z.ZodType<MeetVirtualBackgroundConfig> = z.
});
const RoomConfigSchema: z.ZodType<MeetRoomConfig> = z.object({
recordingConfig: RecordingConfigSchema,
chatConfig: ChatConfigSchema,
virtualBackgroundConfig: VirtualBackgroundConfigSchema
recording: RecordingConfigSchema,
chat: ChatConfigSchema,
virtualBackground: VirtualBackgroundConfigSchema
});
const RoomDeletionPolicyWithMeetingSchema: z.ZodType<MeetRoomDeletionPolicyWithMeeting> = z.enum([
@ -151,9 +151,9 @@ const RoomRequestOptionsSchema: z.ZodType<MeetRoomOptions> = z.object({
}
),
config: RoomConfigSchema.optional().default({
recordingConfig: { enabled: true, allowAccessTo: MeetRecordingAccess.ADMIN_MODERATOR_SPEAKER },
chatConfig: { enabled: true },
virtualBackgroundConfig: { enabled: true }
recording: { enabled: true, allowAccessTo: MeetRecordingAccess.ADMIN_MODERATOR_SPEAKER },
chat: { enabled: true },
virtualBackground: { enabled: true }
})
// maxParticipants: z
// .number()

View File

@ -62,7 +62,7 @@ export const configureRecordingTokenAuth = async (req: Request, res: Response, n
throw errorRoomMetadataNotFound(roomId);
}
const recordingAccess = room.config!.recordingConfig.allowAccessTo;
const recordingAccess = room.config?.recording.allowAccessTo;
if (!recordingAccess || recordingAccess === MeetRecordingAccess.ADMIN) {
// Deny request if the room is configured to allow access to recordings only for admins

View File

@ -75,7 +75,7 @@ export class FrontendEventService {
try {
const payload: MeetRoomConfigUpdatedPayload = {
roomId,
config: updatedRoom.config!,
config: updatedRoom.config,
timestamp: Date.now()
};

View File

@ -684,7 +684,7 @@ export class RoomService {
}
protected getRecordingPermissions(room: Partial<MeetRoom>, role: ParticipantRole): RecordingPermissions {
const recordingAccess = room.config!.recordingConfig.allowAccessTo;
const recordingAccess = room.config?.recording.allowAccessTo;
// A participant can delete recordings if they are a moderator and the recording access is not set to admin
const canDeleteRecordings = role === ParticipantRole.MODERATOR && recordingAccess !== MeetRecordingAccess.ADMIN;

View File

@ -303,7 +303,7 @@ export class MeetStorageService<
moderatorUrl: room.moderatorUrl,
speakerUrl: room.speakerUrl,
config: {
recordingConfig: room.config?.recordingConfig
recording: room.config.recording
}
} as Partial<MRoom>;

View File

@ -146,12 +146,12 @@ export const expectValidRoom = (
expect(room.config).toEqual(config);
} else {
expect(room.config).toEqual({
recordingConfig: {
recording: {
enabled: true,
allowAccessTo: MeetRecordingAccess.ADMIN_MODERATOR_SPEAKER
},
chatConfig: { enabled: true },
virtualBackgroundConfig: { enabled: true }
chat: { enabled: true },
virtualBackground: { enabled: true }
});
}

View File

@ -263,14 +263,14 @@ export const updateRoomConfig = async (roomId: string, config: any) => {
export const updateRecordingAccessConfigInRoom = async (roomId: string, recordingAccess: MeetRecordingAccess) => {
const response = await updateRoomConfig(roomId, {
recordingConfig: {
recording: {
enabled: true,
allowAccessTo: recordingAccess
},
chatConfig: {
chat: {
enabled: true
},
virtualBackgroundConfig: {
virtualBackground: {
enabled: true
}
});

View File

@ -59,12 +59,12 @@ describe('Room API Tests', () => {
withRecordings: MeetRoomDeletionPolicyWithRecordings.FORCE
},
config: {
recordingConfig: {
recording: {
enabled: false,
allowAccessTo: MeetRecordingAccess.ADMIN_MODERATOR_SPEAKER
},
chatConfig: { enabled: false },
virtualBackgroundConfig: { enabled: true }
chat: { enabled: false },
virtualBackground: { enabled: true }
}
};
@ -237,12 +237,12 @@ describe('Room API Tests', () => {
roomName: 'TestRoom',
autoDeletionDate: validAutoDeletionDate,
config: {
recordingConfig: {
recording: {
enabled: 'yes', // invalid boolean
allowAccessTo: MeetRecordingAccess.ADMIN_MODERATOR_SPEAKER
},
chatConfig: { enabled: true },
virtualBackgroundConfig: { enabled: true }
chat: { enabled: true },
virtualBackground: { enabled: true }
}
};

View File

@ -6,12 +6,12 @@ import { setupSingleRoom } from '../../../helpers/test-scenarios.js';
describe('Room API Tests', () => {
const DEFAULT_CONFIG = {
recordingConfig: {
recording: {
enabled: true,
allowAccessTo: MeetRecordingAccess.ADMIN_MODERATOR_SPEAKER
},
chatConfig: { enabled: true },
virtualBackgroundConfig: { enabled: true }
chat: { enabled: true },
virtualBackground: { enabled: true }
};
beforeAll(() => {
@ -36,12 +36,12 @@ describe('Room API Tests', () => {
const payload = {
roomName: 'custom-prefs',
config: {
recordingConfig: {
recording: {
enabled: true,
allowAccessTo: MeetRecordingAccess.ADMIN_MODERATOR_SPEAKER
},
chatConfig: { enabled: true },
virtualBackgroundConfig: { enabled: false }
chat: { enabled: true },
virtualBackground: { enabled: false }
}
};

View File

@ -36,12 +36,12 @@ describe('Room API Tests', () => {
const payload = {
roomName: 'custom-prefs',
config: {
recordingConfig: {
recording: {
enabled: true,
allowAccessTo: MeetRecordingAccess.ADMIN_MODERATOR_SPEAKER
},
chatConfig: { enabled: true },
virtualBackgroundConfig: { enabled: false }
chat: { enabled: true },
virtualBackground: { enabled: false }
}
};
// Create a room with custom config

View File

@ -34,23 +34,23 @@ describe('Room API Tests', () => {
const createdRoom = await createRoom({
roomName: 'update-test',
config: {
recordingConfig: {
recording: {
enabled: true,
allowAccessTo: MeetRecordingAccess.ADMIN_MODERATOR_SPEAKER
},
chatConfig: { enabled: true },
virtualBackgroundConfig: { enabled: true }
chat: { enabled: true },
virtualBackground: { enabled: true }
}
});
// Update the room config
const updatedConfig = {
recordingConfig: {
recording: {
enabled: false,
allowAccessTo: MeetRecordingAccess.ADMIN
},
chatConfig: { enabled: false },
virtualBackgroundConfig: { enabled: false }
chat: { enabled: false },
virtualBackground: { enabled: false }
};
const updateResponse = await updateRoomConfig(createdRoom.roomId, updatedConfig);
@ -82,23 +82,23 @@ describe('Room API Tests', () => {
const createdRoom = await createRoom({
roomName: 'partial-update',
config: {
recordingConfig: {
recording: {
enabled: true,
allowAccessTo: MeetRecordingAccess.ADMIN_MODERATOR_SPEAKER
},
chatConfig: { enabled: true },
virtualBackgroundConfig: { enabled: true }
chat: { enabled: true },
virtualBackground: { enabled: true }
}
});
// Update only one preference
const partialConfig = {
recordingConfig: {
recording: {
enabled: false,
allowAccessTo: MeetRecordingAccess.ADMIN_MODERATOR_SPEAKER
},
chatConfig: { enabled: true },
virtualBackgroundConfig: { enabled: true }
chat: { enabled: true },
virtualBackground: { enabled: true }
};
const updateResponse = await updateRoomConfig(createdRoom.roomId, partialConfig);
@ -121,17 +121,17 @@ describe('Room API Tests', () => {
// Invalid config (missing required fields)
const invalidConfig = {
recordingConfig: {
recording: {
enabled: false
},
// Missing chatConfig
virtualBackgroundConfig: { enabled: false }
// Missing chat config
virtualBackground: { enabled: false }
};
const response = await updateRoomConfig(roomId, invalidConfig);
expect(response.status).toBe(422);
expect(response.body.error).toContain('Unprocessable Entity');
expect(JSON.stringify(response.body.details)).toContain('chatConfig');
expect(JSON.stringify(response.body.details)).toContain('chat');
});
it('should fail when config has incorrect types', async () => {
@ -141,18 +141,18 @@ describe('Room API Tests', () => {
// Invalid config (wrong types)
const invalidConfig = {
recordingConfig: {
recording: {
enabled: 'true', // String instead of boolean
allowAccessTo: MeetRecordingAccess.ADMIN_MODERATOR_SPEAKER
},
chatConfig: { enabled: false },
virtualBackgroundConfig: { enabled: false }
chat: { enabled: false },
virtualBackground: { enabled: false }
};
const response = await updateRoomConfig(createdRoom.roomId, invalidConfig);
expect(response.status).toBe(422);
expect(response.body.error).toContain('Unprocessable Entity');
expect(JSON.stringify(response.body.details)).toContain('recordingConfig.enabled');
expect(JSON.stringify(response.body.details)).toContain('recording.enabled');
});
it('should fail when config is missing required properties', async () => {
@ -173,29 +173,29 @@ describe('Room API Tests', () => {
});
const invalidConfig = {
recordingConfig: {
recording: {
enabled: true // Missing allowAccessTo
},
chatConfig: { enabled: false },
virtualBackgroundConfig: { enabled: false }
chat: { enabled: false },
virtualBackground: { enabled: false }
};
const response = await updateRoomConfig(createdRoom.roomId, invalidConfig);
expect(response.status).toBe(422);
expect(response.body.error).toContain('Unprocessable Entity');
expect(JSON.stringify(response.body.details)).toContain('recordingConfig.allowAccessTo');
expect(JSON.stringify(response.body.details)).toContain('recording.allowAccessTo');
});
it('should return 404 when updating non-existent room', async () => {
const nonExistentRoomId = 'non-existent-room';
const config = {
recordingConfig: {
recording: {
enabled: false,
allowAccessTo: MeetRecordingAccess.ADMIN_MODERATOR_SPEAKER
},
chatConfig: { enabled: false },
virtualBackgroundConfig: { enabled: false }
chat: { enabled: false },
virtualBackground: { enabled: false }
};
const response = await updateRoomConfig(nonExistentRoomId, config);

View File

@ -244,12 +244,12 @@ describe('Room API Security Tests', () => {
describe('Update Room Config Tests', () => {
const roomConfig = {
recordingConfig: {
recording: {
enabled: false,
allowAccessTo: MeetRecordingAccess.ADMIN_MODERATOR_SPEAKER
},
chatConfig: { enabled: true },
virtualBackgroundConfig: { enabled: true }
chat: { enabled: true },
virtualBackground: { enabled: true }
};
let roomId: string;

View File

@ -90,7 +90,7 @@ export class RecordingConfigComponent implements OnDestroy {
const stepData: any = {
config: {
recordingConfig: {
recording: {
enabled,
...(enabled && { allowAccessTo: formValue.allowAccessTo })
}

View File

@ -35,10 +35,10 @@ export class RoomConfigComponent implements OnDestroy {
private saveFormData(formValue: any): void {
const stepData: any = {
config: {
chatConfig: {
chat: {
enabled: formValue.chatEnabled
},
virtualBackgroundConfig: {
virtualBackground: {
enabled: formValue.virtualBackgroundsEnabled
}
}

View File

@ -383,7 +383,7 @@ export class MeetingComponent implements OnInit {
this.featureConfService.setRoomConfig(config);
// Refresh recording token if recording is enabled
if (config.recordingConfig.enabled) {
if (config.recording.enabled) {
try {
await this.recordingService.generateRecordingToken(this.roomId, this.roomSecret);
} catch (error) {

View File

@ -138,9 +138,9 @@ export class FeatureConfigurationService {
// Apply room configurations
if (roomPrefs) {
features.showRecordingPanel = roomPrefs.recordingConfig.enabled;
features.showChat = roomPrefs.chatConfig.enabled;
features.showBackgrounds = roomPrefs.virtualBackgroundConfig.enabled;
features.showRecordingPanel = roomPrefs.recording.enabled;
features.showChat = roomPrefs.chat.enabled;
features.showBackgrounds = roomPrefs.virtualBackground.enabled;
}
// Apply participant permissions (these can restrict enabled features)

View File

@ -11,12 +11,12 @@ import {
// Default room config following the app's defaults
const DEFAULT_CONFIG: MeetRoomConfig = {
recordingConfig: {
recording: {
enabled: true,
allowAccessTo: MeetRecordingAccess.ADMIN_MODERATOR_SPEAKER
},
chatConfig: { enabled: true },
virtualBackgroundConfig: { enabled: true }
chat: { enabled: true },
virtualBackground: { enabled: true }
};
/**
@ -156,8 +156,8 @@ export class RoomWizardStateService {
isActive: editMode, // Only active in edit mode
isVisible: true,
formGroup: this.formBuilder.group({
recordingEnabled: initialRoomOptions.config!.recordingConfig.enabled ? 'enabled' : 'disabled',
allowAccessTo: initialRoomOptions.config!.recordingConfig.allowAccessTo
recordingEnabled: initialRoomOptions.config!.recording.enabled ? 'enabled' : 'disabled',
allowAccessTo: initialRoomOptions.config!.recording.allowAccessTo
})
},
{
@ -187,8 +187,8 @@ export class RoomWizardStateService {
isActive: false,
isVisible: true,
formGroup: this.formBuilder.group({
chatEnabled: initialRoomOptions.config!.chatConfig.enabled,
virtualBackgroundsEnabled: initialRoomOptions.config!.virtualBackgroundConfig.enabled
chatEnabled: initialRoomOptions.config!.chat.enabled,
virtualBackgroundsEnabled: initialRoomOptions.config!.virtualBackground.enabled
})
}
];
@ -234,9 +234,9 @@ export class RoomWizardStateService {
...currentOptions,
config: {
...currentOptions.config,
recordingConfig: {
...currentOptions.config?.recordingConfig,
...stepData.config?.recordingConfig
recording: {
...currentOptions.config?.recording,
...stepData.config?.recording
}
} as MeetRoomConfig
};
@ -251,17 +251,17 @@ export class RoomWizardStateService {
...currentOptions,
config: {
...currentOptions.config,
chatConfig: {
...currentOptions.config?.chatConfig,
...stepData.config?.chatConfig
chat: {
...currentOptions.config?.chat,
...stepData.config?.chat
},
virtualBackgroundConfig: {
...currentOptions.config?.virtualBackgroundConfig,
...stepData.config?.virtualBackgroundConfig
virtualBackground: {
...currentOptions.config?.virtualBackground,
...stepData.config?.virtualBackground
},
recordingConfig: {
...currentOptions.config?.recordingConfig,
...stepData.config?.recordingConfig
recording: {
...currentOptions.config?.recording,
...stepData.config?.recording
}
} as MeetRoomConfig
};
@ -283,7 +283,7 @@ export class RoomWizardStateService {
const currentSteps = this._steps();
const currentOptions = this._roomOptions();
// TODO: Uncomment when recording config is fully implemented
const recordingEnabled = false; // currentOptions.config?.recordingConfig.enabled ?? false;
const recordingEnabled = false; // currentOptions.config?.recording.enabled ?? false;
// Update recording steps visibility based on recordingEnabled
const updatedSteps = currentSteps.map((step) => {

View File

@ -75,12 +75,12 @@ test.describe('Recording Access Tests', () => {
await updateRoomConfig(
roomId,
{
chatConfig: { enabled: true },
recordingConfig: {
chat: { enabled: true },
recording: {
enabled: true,
allowAccessTo: MeetRecordingAccess.ADMIN
},
virtualBackgroundConfig: { enabled: true }
virtualBackground: { enabled: true }
},
adminCookie
);
@ -96,12 +96,12 @@ test.describe('Recording Access Tests', () => {
await updateRoomConfig(
roomId,
{
chatConfig: { enabled: true },
recordingConfig: {
chat: { enabled: true },
recording: {
enabled: true,
allowAccessTo: MeetRecordingAccess.ADMIN
},
virtualBackgroundConfig: { enabled: true }
virtualBackground: { enabled: true }
},
adminCookie
);
@ -117,12 +117,12 @@ test.describe('Recording Access Tests', () => {
await updateRoomConfig(
roomId,
{
chatConfig: { enabled: true },
recordingConfig: {
chat: { enabled: true },
recording: {
enabled: true,
allowAccessTo: MeetRecordingAccess.ADMIN_MODERATOR
},
virtualBackgroundConfig: { enabled: true }
virtualBackground: { enabled: true }
},
adminCookie
);
@ -138,12 +138,12 @@ test.describe('Recording Access Tests', () => {
await updateRoomConfig(
roomId,
{
chatConfig: { enabled: true },
recordingConfig: {
chat: { enabled: true },
recording: {
enabled: true,
allowAccessTo: MeetRecordingAccess.ADMIN_MODERATOR
},
virtualBackgroundConfig: { enabled: true }
virtualBackground: { enabled: true }
},
adminCookie
);
@ -159,12 +159,12 @@ test.describe('Recording Access Tests', () => {
await updateRoomConfig(
roomId,
{
chatConfig: { enabled: true },
recordingConfig: {
chat: { enabled: true },
recording: {
enabled: true,
allowAccessTo: MeetRecordingAccess.ADMIN_MODERATOR
},
virtualBackgroundConfig: { enabled: true }
virtualBackground: { enabled: true }
},
adminCookie
);
@ -180,12 +180,12 @@ test.describe('Recording Access Tests', () => {
await updateRoomConfig(
roomId,
{
chatConfig: { enabled: true },
recordingConfig: {
chat: { enabled: true },
recording: {
enabled: true,
allowAccessTo: MeetRecordingAccess.ADMIN_MODERATOR_SPEAKER
},
virtualBackgroundConfig: { enabled: true }
virtualBackground: { enabled: true }
},
adminCookie
);

View File

@ -76,12 +76,12 @@ test.describe('UI Feature Config Tests', () => {
await updateRoomConfig(
roomId,
{
chatConfig: { enabled: true },
recordingConfig: {
chat: { enabled: true },
recording: {
enabled: true,
allowAccessTo: MeetRecordingAccess.ADMIN_MODERATOR_SPEAKER
},
virtualBackgroundConfig: { enabled: true }
virtualBackground: { enabled: true }
},
adminCookie
);
@ -100,12 +100,12 @@ test.describe('UI Feature Config Tests', () => {
await updateRoomConfig(
roomId,
{
chatConfig: { enabled: false },
recordingConfig: {
chat: { enabled: false },
recording: {
enabled: true,
allowAccessTo: MeetRecordingAccess.ADMIN_MODERATOR_SPEAKER
},
virtualBackgroundConfig: { enabled: true }
virtualBackground: { enabled: true }
},
adminCookie
);
@ -129,12 +129,12 @@ test.describe('UI Feature Config Tests', () => {
await updateRoomConfig(
roomId,
{
chatConfig: { enabled: true },
recordingConfig: {
chat: { enabled: true },
recording: {
enabled: true,
allowAccessTo: MeetRecordingAccess.ADMIN_MODERATOR_SPEAKER
},
virtualBackgroundConfig: { enabled: true }
virtualBackground: { enabled: true }
},
adminCookie
);
@ -163,12 +163,12 @@ test.describe('UI Feature Config Tests', () => {
await updateRoomConfig(
roomId,
{
chatConfig: { enabled: true },
recordingConfig: {
chat: { enabled: true },
recording: {
enabled: true,
allowAccessTo: MeetRecordingAccess.ADMIN_MODERATOR_SPEAKER
},
virtualBackgroundConfig: { enabled: true }
virtualBackground: { enabled: true }
},
adminCookie
);
@ -188,12 +188,12 @@ test.describe('UI Feature Config Tests', () => {
await updateRoomConfig(
roomId,
{
chatConfig: { enabled: true },
recordingConfig: {
chat: { enabled: true },
recording: {
enabled: false,
allowAccessTo: MeetRecordingAccess.ADMIN_MODERATOR_SPEAKER
},
virtualBackgroundConfig: { enabled: true }
virtualBackground: { enabled: true }
},
adminCookie
);
@ -229,12 +229,12 @@ test.describe('UI Feature Config Tests', () => {
await updateRoomConfig(
roomId,
{
chatConfig: { enabled: true },
recordingConfig: {
chat: { enabled: true },
recording: {
enabled: true,
allowAccessTo: MeetRecordingAccess.ADMIN_MODERATOR_SPEAKER
},
virtualBackgroundConfig: { enabled: true }
virtualBackground: { enabled: true }
},
adminCookie
);
@ -258,12 +258,12 @@ test.describe('UI Feature Config Tests', () => {
await updateRoomConfig(
roomId,
{
chatConfig: { enabled: true },
recordingConfig: {
chat: { enabled: true },
recording: {
enabled: true,
allowAccessTo: MeetRecordingAccess.ADMIN_MODERATOR_SPEAKER
},
virtualBackgroundConfig: { enabled: false }
virtualBackground: { enabled: false }
},
adminCookie
);
@ -287,12 +287,12 @@ test.describe('UI Feature Config Tests', () => {
await updateRoomConfig(
roomId,
{
chatConfig: { enabled: true },
recordingConfig: {
chat: { enabled: true },
recording: {
enabled: true,
allowAccessTo: MeetRecordingAccess.ADMIN_MODERATOR_SPEAKER
},
virtualBackgroundConfig: { enabled: true }
virtualBackground: { enabled: true }
},
adminCookie
);
@ -308,12 +308,12 @@ test.describe('UI Feature Config Tests', () => {
await updateRoomConfig(
roomId,
{
chatConfig: { enabled: true },
recordingConfig: {
chat: { enabled: true },
recording: {
enabled: true,
allowAccessTo: MeetRecordingAccess.ADMIN_MODERATOR_SPEAKER
},
virtualBackgroundConfig: { enabled: false }
virtualBackground: { enabled: false }
},
adminCookie
);

View File

@ -90,12 +90,12 @@ export async function interactWithElementInIframe(
// Helper function to get default room config
const getDefaultRoomConfig = (): MeetRoomConfig => ({
recordingConfig: {
recording: {
enabled: true,
allowAccessTo: MeetRecordingAccess.ADMIN_MODERATOR_SPEAKER
},
chatConfig: { enabled: true },
virtualBackgroundConfig: { enabled: true }
chat: { enabled: true },
virtualBackground: { enabled: true }
});
// Helper function to create a room for testing

View File

@ -208,7 +208,7 @@
<div class="form-check">
<input
type="checkbox"
name="config.chatConfig.enabled"
name="config.chat.enabled"
id="chat-enabled"
class="form-check-input"
checked
@ -246,7 +246,7 @@
<div class="form-check mb-2">
<input
type="checkbox"
name="config.recordingConfig.enabled"
name="config.recording.enabled"
id="recording-enabled"
class="form-check-input"
checked
@ -262,7 +262,7 @@
>Recording Access Level</label
>
<select
name="config.recordingConfig.allowAccessTo"
name="config.recording.allowAccessTo"
id="recording-access"
class="form-select"
data-testid="recording-access-select"
@ -304,7 +304,7 @@
<div class="form-check">
<input
type="checkbox"
name="config.virtualBackgroundConfig.enabled"
name="config.virtualBackground.enabled"
id="virtual-background-enabled"
class="form-check-input"
checked

View File

@ -158,18 +158,18 @@ export const deleteAllRecordingsCtrl = async (_req: Request, res: Response) => {
*/
const processFormConfig = (body: any): any => {
const config = {
chatConfig: {
enabled: body['config.chatConfig.enabled'] === 'on'
chat: {
enabled: body['config.chat.enabled'] === 'on'
},
recordingConfig: {
enabled: body['config.recordingConfig.enabled'] === 'on',
recording: {
enabled: body['config.recording.enabled'] === 'on',
// Only include allowAccessTo if recording is enabled
...(body['config.recordingConfig.enabled'] === 'on' && {
allowAccessTo: body['config.recordingConfig.allowAccessTo'] || 'admin_moderator_speaker'
...(body['config.recording.enabled'] === 'on' && {
allowAccessTo: body['config.recording.allowAccessTo'] || 'admin_moderator_speaker'
})
},
virtualBackgroundConfig: {
enabled: body['config.virtualBackgroundConfig.enabled'] === 'on'
virtualBackground: {
enabled: body['config.virtualBackground.enabled'] === 'on'
}
};

View File

@ -2,9 +2,9 @@
* Interface representing the config for a room.
*/
export interface MeetRoomConfig {
chatConfig: MeetChatConfig;
recordingConfig: MeetRecordingConfig;
virtualBackgroundConfig: MeetVirtualBackgroundConfig;
chat: MeetChatConfig;
recording: MeetRecordingConfig;
virtualBackground: MeetVirtualBackgroundConfig;
}
/**