diff --git a/app/authorization/server/functions/canSendMessage.js b/app/authorization/server/functions/canSendMessage.js index 26099af663f6..c303154e16b6 100644 --- a/app/authorization/server/functions/canSendMessage.js +++ b/app/authorization/server/functions/canSendMessage.js @@ -9,10 +9,10 @@ const subscriptionOptions = { }, }; -export const canSendMessageAsync = async (rid, { uid, username }, extraData) => { +export const canSendMessageAsync = async (rid, { uid, username, type }, extraData) => { const room = await Rooms.findOneById(rid); - if (!await canAccessRoomAsync(room, { _id: uid, username }, extraData)) { + if (type !== 'app' && !await canAccessRoomAsync(room, { _id: uid, username }, extraData)) { throw new Error('error-not-allowed'); } @@ -35,4 +35,4 @@ export const canSendMessageAsync = async (rid, { uid, username }, extraData) => return room; }; -export const canSendMessage = (rid, { uid, username }, extraData) => Promise.await(canSendMessageAsync(rid, { uid, username }, extraData)); +export const canSendMessage = (rid, { uid, username, type }, extraData) => Promise.await(canSendMessageAsync(rid, { uid, username, type }, extraData)); diff --git a/app/lib/server/functions/deleteMessage.js b/app/lib/server/functions/deleteMessage.js index e74ff6d7d1bb..4e80b52fb114 100644 --- a/app/lib/server/functions/deleteMessage.js +++ b/app/lib/server/functions/deleteMessage.js @@ -1,10 +1,10 @@ import { Meteor } from 'meteor/meteor'; -import { FileUpload } from '../../../file-upload'; -import { settings } from '../../../settings'; -import { Messages, Uploads, Rooms } from '../../../models'; -import { Notifications } from '../../../notifications'; -import { callbacks } from '../../../callbacks'; +import { FileUpload } from '../../../file-upload/server'; +import { settings } from '../../../settings/server'; +import { Messages, Uploads, Rooms } from '../../../models/server'; +import { Notifications } from '../../../notifications/server'; +import { callbacks } from '../../../callbacks/server'; import { Apps } from '../../../apps/server'; export const deleteMessage = function(message, user) { diff --git a/app/lib/server/methods/sendMessage.js b/app/lib/server/methods/sendMessage.js index 827ad31ba39c..d25284a3639f 100644 --- a/app/lib/server/methods/sendMessage.js +++ b/app/lib/server/methods/sendMessage.js @@ -50,6 +50,7 @@ export function executeSendMessage(uid, message) { const user = Users.findOneById(uid, { fields: { username: 1, + type: 1, ...!!settings.get('Message_SetNameToAliasEnabled') && { name: 1 }, }, }); @@ -67,7 +68,7 @@ export function executeSendMessage(uid, message) { } try { - const room = canSendMessage(rid, { uid, username: user.username }); + const room = canSendMessage(rid, { uid, username: user.username, type: user.type }); if (message.alias == null && settings.get('Message_SetNameToAliasEnabled')) { message.alias = user.name; } diff --git a/app/models/server/models/Messages.js b/app/models/server/models/Messages.js index 517ed14a9930..b7c1bba880b1 100644 --- a/app/models/server/models/Messages.js +++ b/app/models/server/models/Messages.js @@ -561,6 +561,9 @@ export class Messages extends Base { username: user.username, }, }, + $unset: { + blocks: 1, + }, }; return this.update(query, update); diff --git a/app/ui-message/client/message.html b/app/ui-message/client/message.html index d1c89d8f5a10..571d2b062f65 100644 --- a/app/ui-message/client/message.html +++ b/app/ui-message/client/message.html @@ -75,15 +75,16 @@ {{#if isSnippet}}