diff --git a/bigbluebutton-html5/imports/api/breakouts/server/handlers/breakoutJoinURL.js b/bigbluebutton-html5/imports/api/breakouts/server/handlers/breakoutJoinURL.js index 9e6efe25e093cf712dcbd9c28a27846391b44399..c08142f86fbbe3fe0a1fa18f32bbc7670252ce08 100644 --- a/bigbluebutton-html5/imports/api/breakouts/server/handlers/breakoutJoinURL.js +++ b/bigbluebutton-html5/imports/api/breakouts/server/handlers/breakoutJoinURL.js @@ -8,6 +8,7 @@ export default function handleBreakoutJoinURL({ body }) { userId, breakoutId, } = body; + console.error(body); check(redirectToHtml5JoinURL, String); @@ -17,10 +18,10 @@ export default function handleBreakoutJoinURL({ body }) { const modifier = { $push: { - users: userId, - }, - $set: { - redirectToHtml5JoinURL, + users: { + userId, + redirectToHtml5JoinURL, + }, }, }; diff --git a/bigbluebutton-html5/imports/api/breakouts/server/publishers.js b/bigbluebutton-html5/imports/api/breakouts/server/publishers.js index f3d7b7d2c92f8229eba1a015a0af95abb82acb94..e0828ded3fbf1f53b64eb8c353a2ce61641a468d 100644 --- a/bigbluebutton-html5/imports/api/breakouts/server/publishers.js +++ b/bigbluebutton-html5/imports/api/breakouts/server/publishers.js @@ -12,8 +12,13 @@ function breakouts(credentials) { Logger.info(`Publishing Breakouts for ${meetingId} ${requesterUserId}`); const selector = { - parentMeetingId: meetingId, - users: requesterUserId, + $or: [{ + parentMeetingId: meetingId, + 'users.userId': requesterUserId, + }, { + breakoutId: meetingId, + }, + ], }; return Breakouts.find(selector); diff --git a/bigbluebutton-html5/imports/ui/components/nav-bar/service.js b/bigbluebutton-html5/imports/ui/components/nav-bar/service.js index 56f61fc5363294245fbfbbda99bf7c970e2cc5b2..816ff4f64311669a480f5c84a4436ac965f616a6 100644 --- a/bigbluebutton-html5/imports/ui/components/nav-bar/service.js +++ b/bigbluebutton-html5/imports/ui/components/nav-bar/service.js @@ -1,10 +1,21 @@ +import Auth from '/imports/ui/services/auth'; import Breakouts from '/imports/api/breakouts'; const getBreakouts = () => Breakouts.find().fetch(); -const getBreakoutJoinURL = breakout => - // experimental - breakout.redirectToHtml5JoinURL; +const getBreakoutJoinURL = (breakout) => { + const currentUserId = Auth.userID; + + if (breakout.users) { + const user = breakout.users.find(u => u.userId === currentUserId); + + if (user) { + return user.redirectToHtml5JoinURL; + } + } + return ''; +}; + export default { getBreakouts, getBreakoutJoinURL,