bigbluebutton-Github/bigbluebutton-html5/server/methods/unmuteUser.js
2016-04-27 21:36:22 +00:00

41 lines
1.3 KiB
JavaScript

import { publish } from '/server/redispubsub';
import { isAllowedTo } from '/server/user_permissions';
import { appendMessageHeader } from '/server/helpers';
import { updateVoiceUser } from '/server/collection_methods/users';
Meteor.methods({
// meetingId: the meetingId of the meeting the user[s] is in
// toMuteUserId: the userId of the user to be unmuted
// requesterUserId: the userId of the requester
// requesterToken: the authToken of the requester
unmuteUser(meetingId, toMuteUserId, requesterUserId, requesterToken) {
let action, message;
action = function () {
if (toMuteUserId === requesterUserId) {
return 'unmuteSelf';
} else {
return 'unmuteOther';
}
};
if (isAllowedTo(action(), meetingId, requesterUserId, requesterToken)) {
message = {
payload: {
user_id: toMuteUserId,
meeting_id: meetingId,
mute: false,
requester_id: requesterUserId,
}
};
message = appendMessageHeader('mute_user_request_message', message);
Meteor.log.info(`publishing a user unmute request for ${toMuteUserId}`);
publish(Meteor.config.redis.channels.toBBBApps.users, message);
updateVoiceUser(meetingId, {
web_userid: toMuteUserId,
talking: false,
muted: false,
});
}
}
});