From 6a66a9fe01eec1097468ede60ba11f765dd675fe Mon Sep 17 00:00:00 2001 From: Richard Alam <ritzalam@gmail.com> Date: Wed, 13 Dec 2017 12:15:18 -0800 Subject: [PATCH] - add create breakout rooms request to whitelist - use current presentation and page of main presentation window as default presentation for breakout rooms --- .../CreateBreakoutRoomsCmdMsgHdlr.scala | 28 +++++++++++++++---- .../client/meeting/AllowedMessageNames.scala | 4 ++- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/breakout/CreateBreakoutRoomsCmdMsgHdlr.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/breakout/CreateBreakoutRoomsCmdMsgHdlr.scala index 689685fc84..dd6307fe0d 100755 --- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/breakout/CreateBreakoutRoomsCmdMsgHdlr.scala +++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/breakout/CreateBreakoutRoomsCmdMsgHdlr.scala @@ -35,8 +35,8 @@ trait CreateBreakoutRoomsCmdMsgHdlr extends RightsManagementTrait { def processRequest(msg: CreateBreakoutRoomsCmdMsg, state: MeetingState2x): MeetingState2x = { - val presId = getPresentationId - val presSlide = getPresentationSlide + val presId = getPresentationId(state) + val presSlide = getPresentationSlide(state) val parentId = liveMeeting.props.meetingProp.intId var rooms = new collection.immutable.HashMap[String, BreakoutRoom2x] @@ -80,13 +80,31 @@ trait CreateBreakoutRoomsCmdMsgHdlr extends RightsManagementTrait { BbbCommonEnvCoreMsg(envelope, event) } - def getPresentationId: String = { + def getPresentationId(state: MeetingState2x): String = { // in very rare cases the presentation conversion generates an error, what should we do? // those cases where default.pdf is deleted from the whiteboard - if (!liveMeeting.presModel.getCurrentPresentation().isEmpty) liveMeeting.presModel.getCurrentPresentation().get.id else "blank" + var currentPresentation = "blank" + for { + defaultPod <- state.presentationPodManager.getDefaultPod() + curPres <- defaultPod.getCurrentPresentation() + } yield { + currentPresentation = curPres.id + } + + currentPresentation } - def getPresentationSlide: Int = { + def getPresentationSlide(state: MeetingState2x): Int = { if (!liveMeeting.presModel.getCurrentPage().isEmpty) liveMeeting.presModel.getCurrentPage().get.num else 0 + var currentSlide = 0 + for { + defaultPod <- state.presentationPodManager.getDefaultPod() + curPres <- defaultPod.getCurrentPresentation() + curPage <- curPres.getCurrentPage(curPres) + } yield { + currentSlide = curPage.num + } + + currentSlide } } diff --git a/bbb-apps-common/src/main/scala/org/bigbluebutton/client/meeting/AllowedMessageNames.scala b/bbb-apps-common/src/main/scala/org/bigbluebutton/client/meeting/AllowedMessageNames.scala index c616b1f3dd..96c0f90e80 100755 --- a/bbb-apps-common/src/main/scala/org/bigbluebutton/client/meeting/AllowedMessageNames.scala +++ b/bbb-apps-common/src/main/scala/org/bigbluebutton/client/meeting/AllowedMessageNames.scala @@ -25,5 +25,7 @@ object AllowedMessageNames { // Shared Notes Messages "GetSharedNotesPubMsg","CreateSharedNoteReqMsg","DestroySharedNoteReqMsg","UpdateSharedNoteReqMsg","SyncSharedNotePubMsg","ClearSharedNotePubMsg", // Layout Messages - "GetCurrentLayoutReqMsg","BroadcastLayoutMsg") + "GetCurrentLayoutReqMsg","BroadcastLayoutMsg", + // Breakout + "RequestBreakoutJoinURLReqMsg") } \ No newline at end of file -- GitLab