Remove viewer role and associated permissions from participant and room services
This commit is contained in:
parent
22ae25177d
commit
d08ca1fd6b
@ -45,8 +45,6 @@ export class ParticipantService {
|
|||||||
return this.generateModeratorPermissions(roomName);
|
return this.generateModeratorPermissions(roomName);
|
||||||
case ParticipantRole.PUBLISHER:
|
case ParticipantRole.PUBLISHER:
|
||||||
return this.generatePublisherPermissions(roomName);
|
return this.generatePublisherPermissions(roomName);
|
||||||
case ParticipantRole.VIEWER:
|
|
||||||
return this.generateViewerPermissions(roomName);
|
|
||||||
default:
|
default:
|
||||||
throw new Error(`Role ${role} not supported`);
|
throw new Error(`Role ${role} not supported`);
|
||||||
}
|
}
|
||||||
@ -104,30 +102,4 @@ export class ParticipantService {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
protected generateViewerPermissions(roomName: string): ParticipantPermissions {
|
|
||||||
return {
|
|
||||||
livekit: {
|
|
||||||
roomJoin: true,
|
|
||||||
roomList: false,
|
|
||||||
roomRecord: false,
|
|
||||||
roomAdmin: false,
|
|
||||||
room: roomName,
|
|
||||||
ingressAdmin: false,
|
|
||||||
canPublish: false,
|
|
||||||
canSubscribe: true,
|
|
||||||
canPublishData: false,
|
|
||||||
canUpdateOwnMetadata: false,
|
|
||||||
hidden: false,
|
|
||||||
recorder: false,
|
|
||||||
agent: false
|
|
||||||
},
|
|
||||||
openvidu: {
|
|
||||||
canPublishScreen: false,
|
|
||||||
canRecord: false,
|
|
||||||
canChat: false,
|
|
||||||
canChangeVirtualBackground: false
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -168,10 +168,6 @@ export class RoomService {
|
|||||||
return ParticipantRole.PUBLISHER;
|
return ParticipantRole.PUBLISHER;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (room.viewerRoomUrl.includes(secret)) {
|
|
||||||
return ParticipantRole.VIEWER;
|
|
||||||
}
|
|
||||||
|
|
||||||
throw new Error('Invalid secret');
|
throw new Error('Invalid secret');
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -228,7 +224,6 @@ export class RoomService {
|
|||||||
expirationDate,
|
expirationDate,
|
||||||
moderatorRoomUrl: `${baseUrl}/${roomName}/?secret=${secureUid(10)}`,
|
moderatorRoomUrl: `${baseUrl}/${roomName}/?secret=${secureUid(10)}`,
|
||||||
publisherRoomUrl: `${baseUrl}/${roomName}?secret=${secureUid(10)}`,
|
publisherRoomUrl: `${baseUrl}/${roomName}?secret=${secureUid(10)}`,
|
||||||
viewerRoomUrl: `${baseUrl}/${roomName}/?secret=${secureUid(10)}`,
|
|
||||||
preferences
|
preferences
|
||||||
};
|
};
|
||||||
return openviduRoom;
|
return openviduRoom;
|
||||||
|
|||||||
@ -69,13 +69,6 @@ export class VideoRoomComponent implements OnInit, OnDestroy {
|
|||||||
|
|
||||||
// TODO: Extract permissions from token and apply them to the component
|
// TODO: Extract permissions from token and apply them to the component
|
||||||
this.applyParticipantPermissions();
|
this.applyParticipantPermissions();
|
||||||
if (this.ctxService.isViewerParticipant()) {
|
|
||||||
this.featureFlags.videoEnabled = false;
|
|
||||||
this.featureFlags.audioEnabled = false;
|
|
||||||
this.featureFlags.showMicrophone = false;
|
|
||||||
this.featureFlags.showCamera = false;
|
|
||||||
this.featureFlags.showScreenShare = false;
|
|
||||||
}
|
|
||||||
} catch (error: any) {
|
} catch (error: any) {
|
||||||
console.error('Error fetching room preferences', error);
|
console.error('Error fetching room preferences', error);
|
||||||
this.serverError = error.error.message || error.message || error.error;
|
this.serverError = error.error.message || error.message || error.error;
|
||||||
|
|||||||
@ -15,7 +15,7 @@ export class ContextService {
|
|||||||
roomName: '',
|
roomName: '',
|
||||||
participantName: '',
|
participantName: '',
|
||||||
token: '',
|
token: '',
|
||||||
participantRole: ParticipantRole.VIEWER,
|
participantRole: ParticipantRole.PUBLISHER,
|
||||||
participantPermissions: {
|
participantPermissions: {
|
||||||
canRecord: false,
|
canRecord: false,
|
||||||
canChat: false,
|
canChat: false,
|
||||||
@ -114,10 +114,6 @@ export class ContextService {
|
|||||||
return this.context.participantRole === ParticipantRole.MODERATOR;
|
return this.context.participantRole === ParticipantRole.MODERATOR;
|
||||||
}
|
}
|
||||||
|
|
||||||
isViewerParticipant(): boolean {
|
|
||||||
return this.context.participantRole === ParticipantRole.VIEWER;
|
|
||||||
}
|
|
||||||
|
|
||||||
setParticipantName(participantName: string): void {
|
setParticipantName(participantName: string): void {
|
||||||
this.context.participantName = participantName;
|
this.context.participantName = participantName;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -15,5 +15,5 @@ export interface ParticipantPermissions {
|
|||||||
export const enum ParticipantRole {
|
export const enum ParticipantRole {
|
||||||
MODERATOR = 'moderator',
|
MODERATOR = 'moderator',
|
||||||
PUBLISHER = 'publisher',
|
PUBLISHER = 'publisher',
|
||||||
VIEWER = 'viewer',
|
// VIEWER = 'viewer',
|
||||||
}
|
}
|
||||||
|
|||||||
@ -19,5 +19,4 @@ export interface OpenViduMeetRoom extends BaseRoomOptions {
|
|||||||
creationDate: number;
|
creationDate: number;
|
||||||
moderatorRoomUrl: string;
|
moderatorRoomUrl: string;
|
||||||
publisherRoomUrl: string;
|
publisherRoomUrl: string;
|
||||||
viewerRoomUrl: string;
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user