diff --git a/bigbluebutton-html5/imports/api/users/server/handlers/validateAuthToken.js b/bigbluebutton-html5/imports/api/users/server/handlers/validateAuthToken.js index f8a04154b10d575dc24f1334b0085acaabfaea4b..c182f946e24d6a7a9a0ce49731bad4d096f62879 100644 --- a/bigbluebutton-html5/imports/api/users/server/handlers/validateAuthToken.js +++ b/bigbluebutton-html5/imports/api/users/server/handlers/validateAuthToken.js @@ -30,7 +30,7 @@ export default function handleValidateAuthToken({ body }, meetingId) { if (!User) return; // Publish user join message - if (valid && !waitForApproval) { + if (valid && !waitForApproval && !!User.connectionId) { Logger.info('User=', User); userJoin(meetingId, userId, User.authToken); } diff --git a/bigbluebutton-html5/imports/api/users/server/methods/userLeaving.js b/bigbluebutton-html5/imports/api/users/server/methods/userLeaving.js index 9c21e9be7912a8f253cbdd1b73fceeacbce6391b..898c286ed61081bbc45abc8addbfeafa77ee8302 100755 --- a/bigbluebutton-html5/imports/api/users/server/methods/userLeaving.js +++ b/bigbluebutton-html5/imports/api/users/server/methods/userLeaving.js @@ -27,6 +27,13 @@ export default function userLeaving(meetingId, userId, connectionId) { return false; } + const modifier = { + $set: { + connectionId: false, + }, + }; + Users.upsert(selector, modifier); + const payload = { userId, sessionId: meetingId, diff --git a/bigbluebutton-html5/imports/api/users/server/modifiers/removeUser.js b/bigbluebutton-html5/imports/api/users/server/modifiers/removeUser.js index 8535499e2987ecb4a492d95dfad6a950fbe177e3..0e0cbd01228fdc7305f1e931ac9b7a6a334a2acc 100755 --- a/bigbluebutton-html5/imports/api/users/server/modifiers/removeUser.js +++ b/bigbluebutton-html5/imports/api/users/server/modifiers/removeUser.js @@ -45,7 +45,7 @@ export default function removeUser(meetingId, userId) { return Logger.error(`Removing user from collection: ${err}`); } - const sessionUserId = `${meetingId}-${userId}`; + const sessionUserId = `${meetingId}--${userId}`; clearAllSessions(sessionUserId); clearUserInfoForRequester(meetingId, userId);