Skip to content
Snippets Groups Projects
Unverified Commit e67fd186 authored by Anton Georgiev's avatar Anton Georgiev Committed by GitHub
Browse files

Merge pull request #12874 from antobinary/chat-selector

fix(guests): Propagate list of pending guests only to mods
parents 752ef1d3 ac3d627d
No related branches found
No related tags found
No related merge requests found
import GuestUsers from '/imports/api/guest-users/'; import GuestUsers from '/imports/api/guest-users/';
import Users from '/imports/api/users';
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 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 guestUsers() { function guestUsers() {
const tokenValidation = AuthTokenValidation.findOne({ connectionId: this.connection.id }); const tokenValidation = AuthTokenValidation.findOne({ connectionId: this.connection.id });
if (!tokenValidation || tokenValidation.validationStatus !== ValidationStates.VALIDATED) { if (!tokenValidation || tokenValidation.validationStatus !== ValidationStates.VALIDATED) {
Logger.warn(`Publishing GuestUsers was requested by unauth connection ${this.connection.id}`); Logger.warn(`Publishing GuestUser was requested by unauth connection ${this.connection.id}`);
return GuestUsers.find({ meetingId: '' }); return GuestUsers.find({ meetingId: '' });
} }
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 GuestUsers.find({ meetingId: '' });
}
Logger.debug(`Publishing GuestUsers for ${meetingId} ${userId}`); Logger.debug(`Publishing GuestUsers for ${meetingId} ${userId}`);
return GuestUsers.find({ meetingId }); return GuestUsers.find({ meetingId });
......
...@@ -16,10 +16,10 @@ function currentPoll() { ...@@ -16,10 +16,10 @@ function currentPoll() {
const { meetingId, userId } = tokenValidation; const { meetingId, userId } = tokenValidation;
const User = Users.findOne({ userId, meetingId }, { fields: { role: 1 } }); const User = Users.findOne({ userId, meetingId }, { fields: { role: 1 } });
if (!User || User.role != ROLE_MODERATOR) { if (!User || User.role !== ROLE_MODERATOR) {
Logger.warn( Logger.warn(
'Publishing current-poll was requested by non-moderator connection', 'Publishing current-poll was requested by non-moderator connection',
{ meetingId, userId, connectionId: this.connection.id } { meetingId, userId, connectionId: this.connection.id },
); );
return Polls.find({ meetingId: '' }); return Polls.find({ meetingId: '' });
} }
......
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