mirror of
https://github.com/gristlabs/grist-core.git
synced 2024-10-27 20:44:07 +00:00
[Comm.js] Return a session profile based on the x-remote-user header if set
This commit is contained in:
parent
116295e42f
commit
a584bc3a19
@ -150,6 +150,21 @@ Comm.prototype._broadcastMessage = function(type, data, clients) {
|
|||||||
clients.forEach(client => client.sendMessage({type, data}));
|
clients.forEach(client => client.sendMessage({type, data}));
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
Comm.prototype._getSessionProfile = function(scopedSession, req) {
|
||||||
|
// apply x-remote-user header as a profile if the header was set
|
||||||
|
if (req.headers && req.headers['x-remote-user']) {
|
||||||
|
const userName = req.headers['x-remote-user'].toString();
|
||||||
|
return Promise.resolve({
|
||||||
|
"email": userName,
|
||||||
|
"name": userName,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return scopedSession.getSessionProfile();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sends a per-doc message to the given client.
|
* Sends a per-doc message to the given client.
|
||||||
* @param {Object} client - The client object, as passed to all per-doc methods.
|
* @param {Object} client - The client object, as passed to all per-doc methods.
|
||||||
@ -236,7 +251,7 @@ Comm.prototype._onWebSocketConnection = async function(websocket, req) {
|
|||||||
// Delegate message handling to the client
|
// Delegate message handling to the client
|
||||||
websocket.on('message', client.onMessage.bind(client));
|
websocket.on('message', client.onMessage.bind(client));
|
||||||
|
|
||||||
scopedSession.getSessionProfile()
|
this._getSessionProfile(scopedSession, req)
|
||||||
.then((profile) => {
|
.then((profile) => {
|
||||||
log.debug(`Comm ${client}: sending clientConnect with ` +
|
log.debug(`Comm ${client}: sending clientConnect with ` +
|
||||||
`${client._missedMessages.length} missed messages`);
|
`${client._missedMessages.length} missed messages`);
|
||||||
|
Loading…
Reference in New Issue
Block a user