Skip to content
Snippets Groups Projects
Commit 21cb175d authored by Anton Georgiev's avatar Anton Georgiev
Browse files

fix(polls): Avoid viewer manually subscribing to current-poll

parent aa0ea219
No related branches found
No related tags found
No related merge requests found
import { Meteor } from 'meteor/meteor'; import { Meteor } from 'meteor/meteor';
import Logger from '/imports/startup/server/logger'; import Logger from '/imports/startup/server/logger';
import Users from '/imports/api/users';
import Polls from '/imports/api/polls'; import Polls from '/imports/api/polls';
import AuthTokenValidation, { ValidationStates } from '/imports/api/auth-token-validation'; import AuthTokenValidation, { ValidationStates } from '/imports/api/auth-token-validation';
const ROLE_MODERATOR = Meteor.settings.public.user.role_moderator;
function currentPoll() { function currentPoll() {
const tokenValidation = AuthTokenValidation.findOne({ connectionId: this.connection.id }); const tokenValidation = AuthTokenValidation.findOne({ connectionId: this.connection.id });
...@@ -13,6 +15,15 @@ function currentPoll() { ...@@ -13,6 +15,15 @@ function currentPoll() {
const { meetingId, userId } = tokenValidation; const { meetingId, userId } = tokenValidation;
const User = Users.findOne({ userId, meetingId }, { fields: { role: 1 } });
if (!User || User.role != ROLE_MODERATOR) {
Logger.warn(
'Publishing current-poll was requested by non-moderator connection',
{ meetingId, userId, connectionId: this.connection.id }
);
return Polls.find({ meetingId: '' });
}
Logger.debug('Publishing Polls', { meetingId, userId }); Logger.debug('Publishing Polls', { meetingId, userId });
const selector = { const selector = {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment