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 = {