[FIX] Fix file uploads JWT (#15412)

* Fix file uploads JWT

* fix review
pull/15416/head
Marcos Spessatto Defendi 6 years ago committed by Rodrigo Nascimento
parent e446db03a3
commit e0d5153019
  1. 8
      app/livechat/server/api/v1/message.js
  2. 4
      app/livechat/server/hooks/externalMessage.js
  3. 4
      app/livechat/server/hooks/saveAnalyticsData.js
  4. 4
      app/livechat/server/hooks/sendToCRM.js
  5. 4
      app/livechat/server/hooks/sendToFacebook.js
  6. 4
      app/livechat/server/sendMessageBySMS.js
  7. 18
      app/utils/server/functions/normalizeMessageAttachments.js
  8. 19
      app/utils/server/functions/normalizeMessageFileUpload.js

@ -8,7 +8,7 @@ import { API } from '../../../../api';
import { loadMessageHistory } from '../../../../lib';
import { findGuest, findRoom, normalizeHttpHeaderData } from '../lib/livechat';
import { Livechat } from '../../lib/Livechat';
import { normalizeMessageAttachments } from '../../../../utils/server/functions/normalizeMessageAttachments';
import { normalizeMessageFileUpload } from '../../../../utils/server/functions/normalizeMessageFileUpload';
API.v1.addRoute('livechat/message', {
post() {
@ -97,7 +97,7 @@ API.v1.addRoute('livechat/message/:_id', {
}
if (message.file) {
message = normalizeMessageAttachments(message);
message = normalizeMessageFileUpload(message);
}
return API.v1.success({ message });
@ -140,7 +140,7 @@ API.v1.addRoute('livechat/message/:_id', {
if (result) {
let message = Messages.findOneById(_id);
if (message.file) {
message = normalizeMessageAttachments(message);
message = normalizeMessageFileUpload(message);
}
return API.v1.success({ message });
@ -238,7 +238,7 @@ API.v1.addRoute('livechat/messages.history/:rid', {
const messages = loadMessageHistory({ userId: guest._id, rid, end, limit, ls })
.messages
.map(normalizeMessageAttachments);
.map(normalizeMessageFileUpload);
return API.v1.success({ messages });
} catch (e) {
return API.v1.failure(e);

@ -5,7 +5,7 @@ import { settings } from '../../../settings';
import { callbacks } from '../../../callbacks';
import { SystemLogger } from '../../../logger';
import { LivechatExternalMessage } from '../../lib/LivechatExternalMessage';
import { normalizeMessageAttachments } from '../../../utils/server/functions/normalizeMessageAttachments';
import { normalizeMessageFileUpload } from '../../../utils/server/functions/normalizeMessageFileUpload';
let knowledgeEnabled = false;
let apiaiKey = '';
@ -35,7 +35,7 @@ callbacks.add('afterSaveMessage', function(message, room) {
}
if (message.file) {
message = normalizeMessageAttachments(message);
message = normalizeMessageFileUpload(message);
}
// if the message hasn't a token, it was not sent by the visitor, so ignore it

@ -1,6 +1,6 @@
import { callbacks } from '../../../callbacks';
import { LivechatRooms } from '../../../models';
import { normalizeMessageAttachments } from '../../../utils/server/functions/normalizeMessageAttachments';
import { normalizeMessageFileUpload } from '../../../utils/server/functions/normalizeMessageFileUpload';
callbacks.add('afterSaveMessage', function(message, room) {
// skips this callback if the message was edited
@ -14,7 +14,7 @@ callbacks.add('afterSaveMessage', function(message, room) {
}
if (message.file) {
message = normalizeMessageAttachments(message);
message = normalizeMessageFileUpload(message);
}
const now = new Date();

@ -2,7 +2,7 @@ import { settings } from '../../../settings';
import { callbacks } from '../../../callbacks';
import { Messages, LivechatRooms } from '../../../models';
import { Livechat } from '../lib/Livechat';
import { normalizeMessageAttachments } from '../../../utils/server/functions/normalizeMessageAttachments';
import { normalizeMessageFileUpload } from '../../../utils/server/functions/normalizeMessageFileUpload';
const msgNavType = 'livechat_navigation_history';
@ -61,7 +61,7 @@ function sendToCRM(type, room, includeMessages = true) {
msg.attachments = message.attachments;
}
postData.messages.push(normalizeMessageAttachments(msg));
postData.messages.push(normalizeMessageFileUpload(msg));
});
}

@ -1,7 +1,7 @@
import { callbacks } from '../../../callbacks';
import { settings } from '../../../settings';
import OmniChannel from '../lib/OmniChannel';
import { normalizeMessageAttachments } from '../../../utils/server/functions/normalizeMessageAttachments';
import { normalizeMessageFileUpload } from '../../../utils/server/functions/normalizeMessageFileUpload';
callbacks.add('afterSaveMessage', function(message, room) {
// skips this callback if the message was edited
@ -29,7 +29,7 @@ callbacks.add('afterSaveMessage', function(message, room) {
}
if (message.file) {
message = normalizeMessageAttachments(message);
message = normalizeMessageFileUpload(message);
}
OmniChannel.reply({

@ -2,7 +2,7 @@ import { callbacks } from '../../callbacks';
import { settings } from '../../settings';
import { SMS } from '../../sms';
import { LivechatVisitors } from '../../models';
import { normalizeMessageAttachments } from '../../utils/server/functions/normalizeMessageAttachments';
import { normalizeMessageFileUpload } from '../../utils/server/functions/normalizeMessageFileUpload';
callbacks.add('afterSaveMessage', function(message, room) {
// skips this callback if the message was edited
@ -31,7 +31,7 @@ callbacks.add('afterSaveMessage', function(message, room) {
if (message.file) {
message = normalizeMessageAttachments(message);
message = normalizeMessageFileUpload(message);
}
const SMSService = SMS.getService(settings.get('SMS_Service'));

@ -1,18 +0,0 @@
import { FileUpload } from '../../../file-upload/server';
export const normalizeMessageAttachments = (message) => {
if (message.file && message.attachments && Array.isArray(message.attachments) && message.attachments.length) {
const jwt = FileUpload.generateJWTToFileUrls({ rid: message.rid, userId: message.u._id, fileId: message.file._id });
if (jwt) {
message.attachments.forEach((attachment) => {
if (attachment.title_link) {
attachment.title_link = `${ attachment.title_link }?token=${ jwt }`;
}
if (attachment.image_url) {
attachment.image_url = `${ attachment.image_url }?token=${ jwt }`;
}
});
}
}
return message;
};

@ -0,0 +1,19 @@
import { FileUpload } from '../../../file-upload/server';
import { Uploads } from '../../../models/server';
import { settings } from '../../../settings/server';
export const normalizeMessageFileUpload = (message) => {
if (message.file && !message.fileUpload) {
const jwt = FileUpload.generateJWTToFileUrls({ rid: message.rid, userId: message.u._id, fileId: message.file._id });
const file = Uploads.findOne({ _id: message.file._id });
if (!file) {
return message;
}
message.fileUpload = {
publicFilePath: `${ settings.get('Site_Url') }${ FileUpload.getPath(`${ file._id }/${ encodeURI(file.name) }`).substring(1) }${ jwt ? `?token=${ jwt }` : '' }`,
type: file.type,
size: file.size,
};
}
return message;
};
Loading…
Cancel
Save