Skip to content
Snippets Groups Projects
Commit 3f923ac0 authored by Kiran Rao's avatar Kiran Rao
Browse files

Fix updateMessage

parent e8fcb500
No related branches found
No related tags found
No related merge requests found
import moment from 'moment'
Meteor.methods({
updateMessage(message) {
......@@ -9,23 +11,24 @@ Meteor.methods({
const originalMessage = RocketChat.models.Messages.findOneById(message._id);
if (!originalMessage && !originalMessage._id) {
if (!originalMessage || !originalMessage._id) {
return;
}
const hasPermission = RocketChat.authz.hasPermission(Meteor.userId(), 'edit-message', message.rid);
const editAllowed = RocketChat.settings.get('Message_AllowEditing');
const editOwn = originalMessage && originalMessage.u && (originalMessage.u._id === Meteor.userId());
const editOwn = originalMessage.u && originalMessage.u._id === Meteor.userId();
if (!hasPermission && (!editAllowed || !editOwn)) {
throw new Meteor.Error('error-action-not-allowed', 'Message editing not allowed', { method: 'updateMessage', action: 'Message_editing' });
}
const blockEditInMinutes = RocketChat.settings.get('Message_AllowEditing_BlockEditInMinutes');
if ((blockEditInMinutes != null) && (blockEditInMinutes !== 0)) {
let currentTsDiff, msgTs;
if (originalMessage.ts != null) { msgTs = moment(originalMessage.ts); }
if (msgTs != null) { currentTsDiff = moment().diff(msgTs, 'minutes'); }
if (Match.test(blockEditInMinutes, Number) && blockEditInMinutes !== 0) {
let currentTsDiff;
let msgTs;
if (Match.test(originalMessage.ts, Number)) { msgTs = moment(originalMessage.ts); }
if (msgTs) { currentTsDiff = moment().diff(msgTs, 'minutes'); }
if (currentTsDiff > blockEditInMinutes) {
throw new Meteor.Error('error-message-editing-blocked', 'Message editing is blocked', { method: 'updateMessage' });
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment