Remove roles on logout

auto_join_3.3
Håvar Aambø Fosstveit 2020-03-24 00:56:26 +01:00
parent 9b8853f984
commit 43b218fb3a
1 changed files with 17 additions and 0 deletions

View File

@ -18,6 +18,7 @@ const Peer = require('./lib/Peer');
const base64 = require('base-64'); const base64 = require('base-64');
const helmet = require('helmet'); const helmet = require('helmet');
const userRoles = require('./userRoles');
const { const {
loginHelper, loginHelper,
logoutHelper logoutHelper
@ -297,6 +298,19 @@ async function setupAuth()
// logout // logout
app.get('/auth/logout', (req, res) => app.get('/auth/logout', (req, res) =>
{ {
const { peerId } = req.session;
const peer = peers.get(peerId);
if (peer)
{
for (const role of peer.roles)
{
if (role !== userRoles.ALL)
peer.removeRole(role);
}
}
req.logout(); req.logout();
res.send(logoutHelper()); res.send(logoutHelper());
}); });
@ -311,6 +325,9 @@ async function setupAuth()
const { peerId, roomId } = state; const { peerId, roomId } = state;
req.session.peerId = peerId;
req.session.roomId = roomId;
let peer = peers.get(peerId); let peer = peers.get(peerId);
if (!peer) // User has no socket session yet, make temporary if (!peer) // User has no socket session yet, make temporary