bigbluebutton-Github/bigbluebutton-html5/imports/api/users/server/methods/muteUser.js

43 lines
1.5 KiB
JavaScript
Raw Normal View History

import { publish } from '/imports/startup/server/helpers';
import { isAllowedTo } from '/imports/startup/server/userPermissions';
2016-05-05 02:29:43 +08:00
import { appendMessageHeader } from '/imports/startup/server/helpers';
2016-05-13 01:43:59 +08:00
import { updateVoiceUser } from '/imports/api/users/server/modifiers/clearUsersCollection';
2016-05-05 02:29:43 +08:00
import { logger } from '/imports/startup/server/logger';
import { redisConfig } from '/config';
2016-04-20 01:43:31 +08:00
Meteor.methods({
// meetingId: the meetingId of the meeting the user[s] is in
// toMuteUserId: the userId of the user to be muted
// requesterUserId: the userId of the requester
// requesterToken: the authToken of the requester
muteUser(meetingId, toMuteUserId, requesterUserId, requesterToken) {
let action, message;
action = function () {
if (toMuteUserId === requesterUserId) {
return 'muteSelf';
} else {
return 'muteOther';
}
};
if (isAllowedTo(action(), meetingId, requesterUserId, requesterToken)) {
message = {
payload: {
user_id: toMuteUserId,
meeting_id: meetingId,
mute: true,
requester_id: requesterUserId,
2016-05-05 05:49:01 +08:00
},
2016-04-20 01:43:31 +08:00
};
2016-04-20 05:16:32 +08:00
message = appendMessageHeader('mute_user_request_message', message);
2016-04-29 05:37:15 +08:00
logger.info(`publishing a user mute request for ${toMuteUserId}`);
publish(redisConfig.channels.toBBBApps.users, message);
2016-04-20 01:43:31 +08:00
updateVoiceUser(meetingId, {
web_userid: toMuteUserId,
talking: false,
muted: true,
});
}
2016-05-05 05:49:01 +08:00
},
2016-04-20 01:43:31 +08:00
});