|
@@ -182,7 +182,8 @@ const upload = require('multer')({ dest: uploadPath })
|
|
|
async function chatWatcher({_loadRelations, members, _id, createdAt, title, messages, avatar, lastModified}){
|
|
|
|
|
|
console.log('CHAT SAVE', _id, title)
|
|
|
- for (let [id,{user, socket}] of Object.entries(sockets)){
|
|
|
+ for (let [id,socketData] of Object.entries(sockets)){
|
|
|
+ const {user, socket} = socketData
|
|
|
const isMember = members.some(member => member._id.toString() === user._id.toString())
|
|
|
const wasMember =(_loadRelations.members && _loadRelations.members.some(member => member._id.toString() === user._id.toString()))
|
|
|
if (isMember || wasMember){
|
|
@@ -195,6 +196,7 @@ const upload = require('multer')({ dest: uploadPath })
|
|
|
//owner = await owner;
|
|
|
console.log('EMIT', _id, createdAt.getTime(), title)
|
|
|
socket.emit(isMember ? 'chat' : 'chat_left', {_id, createdAt: createdAt.getTime(), title, avatar: avatar && {_id: avatar._id, url: avatar.url}, members: members.map(({_id, login, nick}) => ({_id, login, nick})), lastModified})
|
|
|
+ socketData.user = (await getModels(socketData.decoded.sub)).thisUser //re-read chat permissions
|
|
|
}
|
|
|
}
|
|
|
}
|