diff --git a/bigbluebutton-html5/imports/startup/client/base.jsx b/bigbluebutton-html5/imports/startup/client/base.jsx index b3f0ff58ec6882d25b5c38d6bb2509d629a9d9c4..7fb908e3c401779414c9b019ae642d83478a6903 100755 --- a/bigbluebutton-html5/imports/startup/client/base.jsx +++ b/bigbluebutton-html5/imports/startup/client/base.jsx @@ -219,15 +219,31 @@ const BaseContainer = withTracker(() => { let breakoutRoomSubscriptionHandler; let meetingModeratorSubscriptionHandler; - const User = Users.findOne({ intId: credentials.requesterUserId }); - const meeting = Meetings.findOne({ meetingId }); + const options = { + approved: 1, + authed: 1, + ejected: 1, + color: 1, + effectiveConnectionType: 1, + extId: 1, + guest: 1, + intId: 1, + locked: 1, + loggedOut: 1, + meetingId: 1, + userId: 1, + }; + const User = Users.findOne({ intId: credentials.requesterUserId }, { fields: options }); + const meeting = Meetings.findOne({ meetingId }, { fields: { + meetingEnded: 1, + }}); if (meeting) { const { meetingEnded } = meeting; if (meetingEnded) Session.set('codeError', '410'); } - const approved = !!Users.findOne({ userId: Auth.userID, approved: true, guest: true }); - const ejected = Users.findOne({ userId: Auth.userID, ejected: true }); + const approved = !!Users.findOne({ userId: Auth.userID, approved: true, guest: true }, { fields: options }); + const ejected = Users.findOne({ userId: Auth.userID, ejected: true }, { fields: options }); let userSubscriptionHandler; @@ -252,7 +268,7 @@ const BaseContainer = withTracker(() => { }, }); - Meetings.find({ meetingId }).observe({ + Meetings.find({ meetingId }, { fields: { recordProp: 1 }}).observe({ changed: (newDocument, oldDocument) => { if (newDocument.recordProp) { if (!oldDocument.recordProp.recording && newDocument.recordProp.recording) { diff --git a/bigbluebutton-html5/imports/ui/components/actions-bar/container.jsx b/bigbluebutton-html5/imports/ui/components/actions-bar/container.jsx index 163409fd8e43460c1c660b855a248dec9948f2c3..d2cdfa46ee2392e399a4b091af12dc730e1eaab6 100644 --- a/bigbluebutton-html5/imports/ui/components/actions-bar/container.jsx +++ b/bigbluebutton-html5/imports/ui/components/actions-bar/container.jsx @@ -22,7 +22,7 @@ const ActionsBarContainer = props => <ActionsBar {...props} />; export default withTracker(() => { const POLLING_ENABLED = Meteor.settings.public.poll.enabled; - Meetings.find({ meetingId: Auth.meetingID }).observeChanges({ + Meetings.find({ meetingId: Auth.meetingID }, { fields: { recordProp: 1 } }).observeChanges({ changed: (id, fields) => { if (fields.recordProp && fields.recordProp.recording) { this.window.parent.postMessage({ response: 'recordingStarted' }, '*'); diff --git a/bigbluebutton-html5/imports/ui/components/app/container.jsx b/bigbluebutton-html5/imports/ui/components/app/container.jsx index 99ffd87db307a8667ab6bd0b8a2c79b7f551f924..787de1b7c525f4a5ced5a7b16d5359ac54962090 100755 --- a/bigbluebutton-html5/imports/ui/components/app/container.jsx +++ b/bigbluebutton-html5/imports/ui/components/app/container.jsx @@ -79,7 +79,7 @@ export default injectIntl(withModalMounter(withTracker(({ intl, baseControls }) } // Check if user is removed out of the session - Users.find({ userId: Auth.userID }).observeChanges({ + Users.find({ userId: Auth.userID }, { fields: { connectionId: 1, ejected: 1 }}).observeChanges({ changed(id, fields) { const hasNewConnection = 'connectionId' in fields && (fields.connectionId !== Meteor.connection._lastSessionId); diff --git a/bigbluebutton-html5/imports/ui/components/nav-bar/container.jsx b/bigbluebutton-html5/imports/ui/components/nav-bar/container.jsx index a2fa605efe6f4ec259950447a62d706123387a60..40e8c86a80ceb159e575de78f95200b410dbd18f 100755 --- a/bigbluebutton-html5/imports/ui/components/nav-bar/container.jsx +++ b/bigbluebutton-html5/imports/ui/components/nav-bar/container.jsx @@ -44,7 +44,7 @@ export default withTracker(() => { return hasUnreadMessages; }; - Meetings.find({ meetingId: Auth.meetingID }).observeChanges({ + Meetings.find({ meetingId: Auth.meetingID }, { fields: { recordProp: 1 } }).observeChanges({ changed: (id, fields) => { if (fields.recordProp && fields.recordProp.recording) { this.window.parent.postMessage({ response: 'recordingStarted' }, '*'); diff --git a/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-participants/user-list-item/container.jsx b/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-participants/user-list-item/container.jsx index 046c59aab55e5f16def474b7fbfa15c5d80d785d..3ac0e39535c8d167c4fa12b7f61d0eb46e2b0e18 100644 --- a/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-participants/user-list-item/container.jsx +++ b/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-participants/user-list-item/container.jsx @@ -12,7 +12,7 @@ const UserListItemContainer = props => <UserListItem {...props} />; export default withTracker(({ userId }) => { const findUserInBreakout = Breakouts.findOne({ 'joinedUsers.userId': new RegExp(`^${userId}`) }); const breakoutSequence = (findUserInBreakout || {}).sequence; - const Meeting = Meetings.findOne({ MeetingId: Auth.meetingID }); + const Meeting = Meetings.findOne({ MeetingId: Auth.meetingID }, { fields: {meetingProp: 1}}); return { user: mapUser(Users.findOne({ userId })), userInBreakout: !!findUserInBreakout, diff --git a/bigbluebutton-html5/imports/ui/components/whiteboard/service.js b/bigbluebutton-html5/imports/ui/components/whiteboard/service.js index 714142f9742fde6be7b58d9a748178c78388cefb..e736a0e809d104fc8b12a9bbe37246ef2ebee501 100755 --- a/bigbluebutton-html5/imports/ui/components/whiteboard/service.js +++ b/bigbluebutton-html5/imports/ui/components/whiteboard/service.js @@ -187,7 +187,7 @@ WhiteboardMultiUser.find({ meetingId: Auth.meetingID }).observeChanges({ changed: clearFakeAnnotations, }); -Users.find({ userId: Auth.userID }).observeChanges({ +Users.find({ userId: Auth.userID }, { fields: { presenter: 1 } }).observeChanges({ changed(id, { presenter }) { if (presenter === false) clearFakeAnnotations(); },