From 549176b86eb9f1a062d80e66d8e8291bf3e87586 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=A5var=20Aamb=C3=B8=20Fosstveit?= Date: Wed, 30 Oct 2019 22:12:29 +0100 Subject: [PATCH] Fixed events on server when user logs in. --- server/lib/Peer.js | 18 ++++++++++++++++-- server/lib/Room.js | 27 +++++++++++++++++++++++++++ server/server.js | 6 +++--- 3 files changed, 46 insertions(+), 5 deletions(-) diff --git a/server/lib/Peer.js b/server/lib/Peer.js index 32b6a81..9253aa9 100644 --- a/server/lib/Peer.js +++ b/server/lib/Peer.js @@ -192,7 +192,14 @@ class Peer extends EventEmitter set displayName(displayName) { - this._displayName = displayName; + if (displayName !== this._displayName) + { + const oldDisplayName = this._displayName; + + this._displayName = displayName; + + this.emit('displayNameChanged', { oldDisplayName }); + } } get picture() @@ -202,7 +209,14 @@ class Peer extends EventEmitter set picture(picture) { - this._picture = picture; + if (picture !== this._picture) + { + const oldPicture = this._picture; + + this._picture = picture; + + this.emit('pictureChanged', { oldPicture }); + } } get email() diff --git a/server/lib/Room.js b/server/lib/Room.js index 742d37c..35da279 100644 --- a/server/lib/Room.js +++ b/server/lib/Room.js @@ -339,6 +339,33 @@ class Room extends EventEmitter this.selfDestructCountdown(); } }); + + peer.on('displayNameChanged', ({ oldDisplayName }) => + { + // Ensure the Peer is joined. + if (!peer.data.joined) + throw new Error('Peer not yet joined'); + + // Spread to others + this._notification(peer.socket, 'changeDisplayName', { + peerId : peer.id, + displayName : peer.displayName, + oldDisplayName : oldDisplayName + }, true); + }); + + peer.on('pictureChanged', () => + { + // Ensure the Peer is joined. + if (!peer.data.joined) + throw new Error('Peer not yet joined'); + + // Spread to others + this._notification(peer.socket, 'changePicture', { + peerId : peer.id, + picture : peer.picture + }, true); + }); } async _handleSocketRequest(peer, request, cb) diff --git a/server/server.js b/server/server.js index 20a6bde..5508f28 100755 --- a/server/server.js +++ b/server/server.js @@ -177,10 +177,8 @@ async function setupAuth(oidcIssuer) // any of the supported values directly, i.e. "S256" (recommended) or "plain" const usePKCE = false; - const client = oidcClient; - oidcStrategy = new Strategy( - { client, params, passReqToCallback, usePKCE }, + { client: oidcClient, params, passReqToCallback, usePKCE }, (tokenset, userinfo, done) => { const user = @@ -286,6 +284,8 @@ async function setupAuth(oidcIssuer) const peer = peers.get(state.id); peer && (peer.authenticated = true); + peer && (peer.displayName = displayName); + peer && (peer.picture = picture); res.send(httpHelper({ displayName,