[FIX] Ignore customClass on messages (#24845)

pull/24898/head
Diego Sampaio 4 years ago committed by GitHub
parent a651c58efa
commit 1e008fa642
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 36
      app/lib/server/functions/sendMessage.js
  2. 8
      app/ui-message/client/message.js

@ -22,7 +22,7 @@ const { DISABLE_MESSAGE_PARSER = 'false' } = process.env;
* is going to be rendered in the href attribute of a
* link.
*/
const ValidFullURLParam = Match.Where((value) => {
const validFullURLParam = Match.Where((value) => {
check(value, String);
if (!isURL(value) && !value.startsWith(FileUpload.getPath())) {
@ -36,7 +36,7 @@ const ValidFullURLParam = Match.Where((value) => {
return true;
});
const ValidPartialURLParam = Match.Where((value) => {
const validPartialURLParam = Match.Where((value) => {
check(value, String);
if (!isRelativeURL(value) && !isURL(value) && !value.startsWith(FileUpload.getPath())) {
@ -87,8 +87,8 @@ const validateAttachmentsActions = (attachmentActions) => {
objectMaybeIncluding({
type: String,
text: String,
url: ValidFullURLParam,
image_url: ValidFullURLParam,
url: validFullURLParam,
image_url: validFullURLParam,
is_webview: Boolean,
webview_height_ratio: String,
msg: String,
@ -104,26 +104,26 @@ const validateAttachment = (attachment) => {
color: String,
text: String,
ts: Match.OneOf(String, Number),
thumb_url: ValidFullURLParam,
thumb_url: validFullURLParam,
button_alignment: String,
actions: [Match.Any],
message_link: ValidFullURLParam,
message_link: validFullURLParam,
collapsed: Boolean,
author_name: String,
author_link: ValidFullURLParam,
author_icon: ValidFullURLParam,
author_link: validFullURLParam,
author_icon: validFullURLParam,
title: String,
title_link: ValidFullURLParam,
title_link: validFullURLParam,
title_link_download: Boolean,
image_dimensions: Object,
image_url: ValidFullURLParam,
image_url: validFullURLParam,
image_preview: String,
image_type: String,
image_size: Number,
audio_url: ValidFullURLParam,
audio_url: validFullURLParam,
audio_type: String,
audio_size: Number,
video_url: ValidFullURLParam,
video_url: validFullURLParam,
video_type: String,
video_size: Number,
fields: [Match.Any],
@ -152,7 +152,7 @@ export const validateMessage = (message, room, user) => {
emoji: String,
tmid: String,
tshow: Boolean,
avatar: ValidPartialURLParam,
avatar: validPartialURLParam,
attachments: [Match.Any],
blocks: [Match.Any],
}),
@ -197,6 +197,14 @@ export const prepareMessageObject = function (message, rid, user) {
}
};
/**
* Clean up the message object before saving on db
* @param {IMessage} message
*/
function cleanupMessageObject(message) {
['customClass'].forEach((field) => delete message[field]);
}
export const sendMessage = function (user, message, room, upsert = false) {
if (!user || !message || !room._id) {
return false;
@ -232,6 +240,8 @@ export const sendMessage = function (user, message, room, upsert = false) {
}
}
cleanupMessageObject(message);
parseUrlsInMessage(message);
message = callbacks.run('beforeSaveMessage', message, room);

@ -426,12 +426,12 @@ Template.message.helpers({
return roomCoordinator.getIcon(room);
},
customClass() {
const { customClass, msg } = this;
return customClass || msg.customClass;
const { customClass } = this;
return customClass;
},
fromSearch() {
const { customClass, msg } = this;
return [msg.customClass, customClass].includes('search');
const { customClass } = this;
return customClass === 'search';
},
actionContext() {
const { msg } = this;

Loading…
Cancel
Save