From 390ae657a18523bb0b39f6531fa27de9bb075410 Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Wed, 22 Sep 2021 12:37:20 +0200 Subject: Introduce different layers for permissions Signed-off-by: Joas Schilling --- .../CallView/shared/LocalMediaControls.vue | 6 +++--- src/components/TopBar/CallButton.vue | 4 ++-- src/mixins/isInLobby.js | 2 +- src/utils/webrtc/webrtc.js | 20 ++++++++++---------- 4 files changed, 16 insertions(+), 16 deletions(-) (limited to 'src') diff --git a/src/components/CallView/shared/LocalMediaControls.vue b/src/components/CallView/shared/LocalMediaControls.vue index ca2dbe99e..e878d55f3 100644 --- a/src/components/CallView/shared/LocalMediaControls.vue +++ b/src/components/CallView/shared/LocalMediaControls.vue @@ -301,15 +301,15 @@ export default { }, isAudioAllowed() { - return this.conversation.publishingPermissions & PARTICIPANT.PERMISSIONS.PUBLISH_AUDIO + return this.conversation.permissions & PARTICIPANT.PERMISSIONS.PUBLISH_AUDIO }, isVideoAllowed() { - return this.conversation.publishingPermissions & PARTICIPANT.PERMISSIONS.PUBLISH_VIDEO + return this.conversation.permissions & PARTICIPANT.PERMISSIONS.PUBLISH_VIDEO }, isScreensharingAllowed() { - return this.conversation.publishingPermissions & PARTICIPANT.PERMISSIONS.PUBLISH_SCREEN + return this.conversation.permissions & PARTICIPANT.PERMISSIONS.PUBLISH_SCREEN }, audioButtonClass() { diff --git a/src/components/TopBar/CallButton.vue b/src/components/TopBar/CallButton.vue index a6045e138..1a02569a6 100644 --- a/src/components/TopBar/CallButton.vue +++ b/src/components/TopBar/CallButton.vue @@ -187,10 +187,10 @@ export default { async joinCall() { let flags = PARTICIPANT.CALL_FLAG.IN_CALL - if (this.conversation.publishingPermissions & PARTICIPANT.PERMISSIONS.PUBLISH_AUDIO) { + if (this.conversation.permissions & PARTICIPANT.PERMISSIONS.PUBLISH_AUDIO) { flags |= PARTICIPANT.CALL_FLAG.WITH_AUDIO } - if (this.conversation.publishingPermissions & PARTICIPANT.PERMISSIONS.PUBLISH_VIDEO) { + if (this.conversation.permissions & PARTICIPANT.PERMISSIONS.PUBLISH_VIDEO) { flags |= PARTICIPANT.CALL_FLAG.WITH_VIDEO } diff --git a/src/mixins/isInLobby.js b/src/mixins/isInLobby.js index d7cb4838b..189f0f881 100644 --- a/src/mixins/isInLobby.js +++ b/src/mixins/isInLobby.js @@ -42,7 +42,7 @@ export default { return this.conversation && this.conversation.lobbyState === WEBINAR.LOBBY.NON_MODERATORS && !this.isModerator - && (this.conversation.publishingPermissions & PARTICIPANT.PERMISSIONS.LOBBY_IGNORE) === 0 + && (this.conversation.permissions & PARTICIPANT.PERMISSIONS.LOBBY_IGNORE) === 0 }, }, diff --git a/src/utils/webrtc/webrtc.js b/src/utils/webrtc/webrtc.js index 9d2635255..14ea740b5 100644 --- a/src/utils/webrtc/webrtc.js +++ b/src/utils/webrtc/webrtc.js @@ -914,7 +914,7 @@ export default function initWebRtc(signaling, _callParticipantCollection, _local }) } - const reconnectOnPublishingPermissionsChange = (users) => { + const reconnectOnPermissionsChange = (users) => { const currentParticipant = users.find(user => { const sessionId = user.sessionId || user.sessionid return sessionId === signaling.getSessionId() @@ -928,25 +928,25 @@ export default function initWebRtc(signaling, _callParticipantCollection, _local return } - if (currentParticipant.publishingPermissions === undefined) { + if (currentParticipant.participantPermissions === undefined) { return } - if ((currentParticipant.publishingPermissions & PARTICIPANT.PERMISSIONS.PUBLISH_AUDIO) - && (currentParticipant.publishingPermissions & PARTICIPANT.PERMISSIONS.PUBLISH_VIDEO) + if ((currentParticipant.participantPermissions & PARTICIPANT.PERMISSIONS.PUBLISH_AUDIO) + && (currentParticipant.participantPermissions & PARTICIPANT.PERMISSIONS.PUBLISH_VIDEO) && webrtc.webrtc.isLocalMediaActive()) { return } - if (!(currentParticipant.publishingPermissions & PARTICIPANT.PERMISSIONS.PUBLISH_AUDIO) - && !(currentParticipant.publishingPermissions & PARTICIPANT.PERMISSIONS.PUBLISH_VIDEO) + if (!(currentParticipant.participantPermissions & PARTICIPANT.PERMISSIONS.PUBLISH_AUDIO) + && !(currentParticipant.participantPermissions & PARTICIPANT.PERMISSIONS.PUBLISH_VIDEO) && !webrtc.webrtc.isLocalMediaActive()) { return } // FIXME handle case where only one of the permissions is given - if (!(currentParticipant.publishingPermissions & PARTICIPANT.PERMISSIONS.PUBLISH_AUDIO) - && !(currentParticipant.publishingPermissions & PARTICIPANT.PERMISSIONS.PUBLISH_VIDEO)) { + if (!(currentParticipant.participantPermissions & PARTICIPANT.PERMISSIONS.PUBLISH_AUDIO) + && !(currentParticipant.participantPermissions & PARTICIPANT.PERMISSIONS.PUBLISH_VIDEO)) { startedWithMedia = undefined webrtc.stopLocalVideo() @@ -999,10 +999,10 @@ export default function initWebRtc(signaling, _callParticipantCollection, _local } signaling.on('usersInRoom', function(users) { - reconnectOnPublishingPermissionsChange(users) + reconnectOnPermissionsChange(users) }) signaling.on('usersChanged', function(users) { - reconnectOnPublishingPermissionsChange(users) + reconnectOnPermissionsChange(users) }) webrtc.on('createdPeer', function(peer) { -- cgit v1.2.3