bigbluebutton-Github/bigbluebutton-html5/imports/api/meetings/server/methods/toggleLockSettings.js

42 lines
1.5 KiB
JavaScript
Raw Normal View History

import { Meteor } from 'meteor/meteor';
import { check } from 'meteor/check';
import RedisPubSub from '/imports/startup/server/redis';
export default function toggleLockSettings(credentials, meeting) {
const REDIS_CONFIG = Meteor.settings.private.redis;
const CHANNEL = REDIS_CONFIG.channels.toAkkaApps;
const EVENT_NAME = 'ChangeLockSettingsInMeetingCmdMsg';
const { meetingId, requesterUserId } = credentials;
check(meetingId, String);
check(requesterUserId, String);
check(meeting.lockSettingsProps, {
2018-11-22 00:39:34 +08:00
disableCam: Boolean,
disableMic: Boolean,
2019-04-10 21:44:34 +08:00
disablePrivateChat: Boolean,
disablePublicChat: Boolean,
disableNote: Boolean,
hideUserList: Boolean,
2018-11-22 00:39:34 +08:00
lockedLayout: Boolean,
lockOnJoin: Boolean,
lockOnJoinConfigurable: Boolean,
setBy: Match.Maybe(String),
2018-11-22 00:39:34 +08:00
});
const payload = {
disableCam: meeting.lockSettingsProps.disableCam,
disableMic: meeting.lockSettingsProps.disableMic,
2019-04-10 21:44:34 +08:00
disablePrivChat: meeting.lockSettingsProps.disablePrivateChat,
disablePubChat: meeting.lockSettingsProps.disablePublicChat,
disableNote: meeting.lockSettingsProps.disableNote,
hideUserList: meeting.lockSettingsProps.hideUserList,
lockedLayout: meeting.lockSettingsProps.lockedLayout,
lockOnJoin: meeting.lockSettingsProps.lockOnJoin,
lockOnJoinConfigurable: meeting.lockSettingsProps.lockOnJoinConfigurable,
setBy: requesterUserId,
};
RedisPubSub.publishUserMessage(CHANNEL, EVENT_NAME, meetingId, requesterUserId, payload);
}