[FIX] Missing user data on files uploaded through the API (#10473)
* Added missing userId * Fixed roomFiles method to return files without users too * Added migration to add userId on orphan files * Changed migration code to make sure the message exist before trying to use it's datapull/9950/head
parent
6f2702df6a
commit
bc548e7fc5
@ -0,0 +1,31 @@ |
||||
RocketChat.Migrations.add({ |
||||
version: 113, |
||||
up() { |
||||
if (RocketChat && RocketChat.models && RocketChat.models.Uploads && RocketChat.models.Messages) { |
||||
const fileQuery = { |
||||
userId: null |
||||
}; |
||||
|
||||
const filesToUpdate = RocketChat.models.Uploads.find(fileQuery); |
||||
filesToUpdate.forEach((file) => { |
||||
const messageQuery = { |
||||
'file._id' : file._id |
||||
}; |
||||
const message = RocketChat.models.Messages.findOne(messageQuery); |
||||
if (message) { |
||||
const filter = { |
||||
_id: file._id |
||||
}; |
||||
|
||||
const update = { |
||||
$set: { |
||||
userId: message.u._id |
||||
} |
||||
}; |
||||
|
||||
RocketChat.models.Uploads.model.direct.update(filter, update); |
||||
} |
||||
}); |
||||
} |
||||
} |
||||
}); |
||||
Loading…
Reference in new issue