Init displayName according LTI

master
Mészáros Mihály 2020-01-02 09:48:10 +01:00
parent e8731a37e5
commit 78fd6e1b78
4 changed files with 68 additions and 38 deletions

View File

@ -106,7 +106,7 @@ export default class RoomClient
}
constructor(
{ peerId, accessCode, device, useSimulcast, produce, forceTcp } = {})
{ peerId, accessCode, device, useSimulcast, produce, forceTcp, displayName } = {})
{
if (!peerId)
throw new Error('Missing peerId');
@ -114,8 +114,8 @@ export default class RoomClient
throw new Error('Missing device');
logger.debug(
'constructor() [peerId: "%s", device: "%s", useSimulcast: "%s", produce: "%s", forceTcp: "%s"]',
peerId, device.flag, useSimulcast, produce, forceTcp);
'constructor() [peerId: "%s", device: "%s", useSimulcast: "%s", produce: "%s", forceTcp: "%s", displayName ""]',
peerId, device.flag, useSimulcast, produce, forceTcp, displayName);
this._signalingUrl = null;
@ -128,6 +128,9 @@ export default class RoomClient
// Wheter we force TCP
this._forceTcp = forceTcp;
// Use displayName
store.dispatch(settingsActions.setDisplayName(displayName));
// Torrent support
this._torrentSupport = null;

View File

@ -100,6 +100,7 @@ function run()
const produce = parameters.get('produce') !== 'false';
const useSimulcast = parameters.get('simulcast') === 'true';
const forceTcp = parameters.get('forceTcp') === 'true';
const displayName = parameters.get('displayName');
// Get current device.
const device = deviceInfo();
@ -112,7 +113,7 @@ function run()
);
roomClient = new RoomClient(
{ peerId, accessCode, device, useSimulcast, produce, forceTcp });
{ peerId, accessCode, device, useSimulcast, produce, forceTcp, displayName });
global.CLIENT = roomClient;

View File

@ -405,6 +405,27 @@ class Room extends EventEmitter
case 'join':
{
try
{
if (peer.socket.handshake.session.passport.user.displayName)
{
this._notification(
peer.socket,
'changeDisplayname',
{
peerId : peer.id,
displayName : peer.socket.handshake.session.passport.user.displayName,
oldDisplayName : ''
},
true
);
}
}
catch (error)
{
logger.error(error);
}
// Ensure the Peer is not already joined.
if (peer.joined)
throw new Error('Peer already joined');

View File

@ -390,9 +390,14 @@ async function runHttpsServer()
{
if (req.secure)
{
if (req.isAuthenticated && req.user && req.user._lti)
const ltiURL = new URL(req.protocol + '://' + req.get('host') + req.originalUrl);
if (req.isAuthenticated && req.user && req.user.displayName && !ltiURL.searchParams.get('displayName'))
{
logger.error(req.user._lti);
ltiURL.searchParams.append('displayName', req.user.displayName);
res.redirect(ltiURL);
}
return next();