diff --git a/bigbluebutton-html5/imports/api/breakouts/server/publishers.js b/bigbluebutton-html5/imports/api/breakouts/server/publishers.js index b01f3538dbcdfb421707dfc2172dc1e88abfd621..edff5ef6c2f04fa7183dd9f5437be8504a33d660 100755 --- a/bigbluebutton-html5/imports/api/breakouts/server/publishers.js +++ b/bigbluebutton-html5/imports/api/breakouts/server/publishers.js @@ -1,8 +1,9 @@ import { Meteor } from 'meteor/meteor'; import Breakouts from '/imports/api/breakouts'; +import Users from '/imports/api/users'; import Logger from '/imports/startup/server/logger'; -function breakouts(credentials, moderator) { +function breakouts(credentials, moderator = false) { const { meetingId, requesterUserId, @@ -10,14 +11,17 @@ function breakouts(credentials, moderator) { Logger.info(`Publishing Breakouts for ${meetingId} ${requesterUserId}`); if (moderator) { - const presenterSelector = { - $or: [ - { parentMeetingId: meetingId }, - { breakoutId: meetingId }, - ], - }; + const User = Users.findOne({ userId: requesterUserId }); + if (User.moderator) { + const presenterSelector = { + $or: [ + { parentMeetingId: meetingId }, + { breakoutId: meetingId }, + ], + }; - return Breakouts.find(presenterSelector); + return Breakouts.find(presenterSelector); + } } const selector = { diff --git a/bigbluebutton-html5/imports/api/meetings/server/publishers.js b/bigbluebutton-html5/imports/api/meetings/server/publishers.js index 78d1f486e713e73d25f1597fa577bade998a715a..06f7b93e33e03c09dfcf3fc014ab67afb810aaab 100755 --- a/bigbluebutton-html5/imports/api/meetings/server/publishers.js +++ b/bigbluebutton-html5/imports/api/meetings/server/publishers.js @@ -1,6 +1,7 @@ import { Meteor } from 'meteor/meteor'; import { check } from 'meteor/check'; import Meetings from '/imports/api/meetings'; +import Users from '/imports/api/users'; import Logger from '/imports/startup/server/logger'; function meetings(credentials, isModerator = false) { @@ -19,10 +20,13 @@ function meetings(credentials, isModerator = false) { }; if (isModerator) { - selector.$or.push({ - 'meetingProp.isBreakout': true, - 'breakoutProps.parentId': meetingId, - }); + const User = Users.findOne({ userId: requesterUserId }); + if (User.moderator) { + selector.$or.push({ + 'meetingProp.isBreakout': true, + 'breakoutProps.parentId': meetingId, + }); + } } const options = { diff --git a/bigbluebutton-html5/imports/api/users/server/publishers.js b/bigbluebutton-html5/imports/api/users/server/publishers.js index b1fae3ba769c6c55171caf3069cf62b085351c28..0eeaa17376c3ddec9c7a20adcc1fd0a800052ced 100644 --- a/bigbluebutton-html5/imports/api/users/server/publishers.js +++ b/bigbluebutton-html5/imports/api/users/server/publishers.js @@ -57,11 +57,14 @@ function users(credentials, isModerator = false) { }; if (isModerator) { - selector.$or.push({ - 'breakoutProps.isBreakoutUser': true, - 'breakoutProps.parentId': meetingId, - connectionStatus: 'online', - }); + const User = Users.findOne({ userId: requesterUserId }); + if (User.moderator) { + selector.$or.push({ + 'breakoutProps.isBreakoutUser': true, + 'breakoutProps.parentId': meetingId, + connectionStatus: 'online', + }); + } } const options = {