Skip to content
Snippets Groups Projects
Commit ed725e1a authored by Anton Georgiev's avatar Anton Georgiev
Browse files

remove user from presenter group on user leave

parent e5b335b7
No related branches found
No related tags found
No related merge requests found
......@@ -13,17 +13,6 @@ trait RemoveUserFromPresenterGroupCmdMsgHdlr {
def handleRemoveUserFromPresenterGroupCmdMsg(msg: RemoveUserFromPresenterGroupCmdMsg) {
def broadcastRemoveUserFromPresenterGroup(meetingId: String, userId: String, requesterId: String): Unit = {
val routing = Routing.addMsgToClientRouting(MessageTypes.BROADCAST_TO_MEETING, meetingId, userId)
val envelope = BbbCoreEnvelope(UserRemovedFromPresenterGroupEvtMsg.NAME, routing)
val header = BbbClientMsgHeader(UserRemovedFromPresenterGroupEvtMsg.NAME, meetingId, userId)
val body = UserRemovedFromPresenterGroupEvtMsgBody(userId, requesterId)
val event = UserRemovedFromPresenterGroupEvtMsg(header, body)
val msgEvent = BbbCommonEnvCoreMsg(envelope, event)
outGW.send(msgEvent)
}
if (applyPermissionCheck && !PermissionCheck.isAllowed(PermissionCheck.MOD_LEVEL, PermissionCheck.VIEWER_LEVEL, liveMeeting.users2x, msg.header.userId)) {
val meetingId = liveMeeting.props.meetingProp.intId
val reason = "No permission to remove user from presenter group."
......@@ -37,7 +26,7 @@ trait RemoveUserFromPresenterGroupCmdMsgHdlr {
} yield {
if (requester.role == Roles.MODERATOR_ROLE) {
Users2x.removeUserFromPresenterGroup(liveMeeting.users2x, userId)
broadcastRemoveUserFromPresenterGroup(liveMeeting.props.meetingProp.intId, userId, requesterId)
outGW.send(buildRemoveUserFromPresenterGroup(liveMeeting.props.meetingProp.intId, userId, requesterId))
}
}
}
......
......@@ -43,6 +43,11 @@ trait UserLeaveReqMsgHdlr {
pollApp.stopPoll(state, u.intId, liveMeeting, msgBus)
}
if (Users2x.userIsInPresenterGroup(liveMeeting.users2x, u.intId)) {
Users2x.removeUserFromPresenterGroup(liveMeeting.users2x, u.intId)
outGW.send(buildRemoveUserFromPresenterGroup(liveMeeting.props.meetingProp.intId, u.intId, u.intId))
}
def broadcastEvent(vu: VoiceUserState): Unit = {
val routing = Routing.addMsgToClientRouting(MessageTypes.BROADCAST_TO_MEETING, liveMeeting.props.meetingProp.intId,
vu.intId)
......
......@@ -218,4 +218,13 @@ trait HandlerHelpers extends SystemConfiguration {
BbbCommonEnvCoreMsg(envelope, event)
}
def buildRemoveUserFromPresenterGroup(meetingId: String, userId: String, requesterId: String): BbbCommonEnvCoreMsg = {
val routing = Routing.addMsgToClientRouting(MessageTypes.BROADCAST_TO_MEETING, meetingId, userId)
val envelope = BbbCoreEnvelope(UserRemovedFromPresenterGroupEvtMsg.NAME, routing)
val header = BbbClientMsgHeader(UserRemovedFromPresenterGroupEvtMsg.NAME, meetingId, userId)
val body = UserRemovedFromPresenterGroupEvtMsgBody(userId, requesterId)
val event = UserRemovedFromPresenterGroupEvtMsg(header, body)
BbbCommonEnvCoreMsg(envelope, event)
}
}
......@@ -509,6 +509,4 @@
<target name="modules" depends="init-ant-contrib, generate-html-wrapper, compile-screenshare-standalone,
build-webcam-preview-standalone, build-webcam-view-standalone, compile-bbb" description="Build BBB client without locales" />
<target name="cleanandmake" depends="clean-build-all" description="Build BBB client including locales" />
<target name="build-poll" depends="init-ant-contrib, build-polling" description="Build only the polling module." />
</project>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment