diff --git a/client/lib/chatMessages.coffee b/client/lib/chatMessages.coffee index 2d257c2b5bf..57a65c27118 100644 --- a/client/lib/chatMessages.coffee +++ b/client/lib/chatMessages.coffee @@ -49,10 +49,12 @@ class @ChatMessages return unless hasPermission or (editAllowed and editOwn) return if element.classList.contains("system") - msgTs = moment(message.ts) if message.ts? - currentTsDiff = moment().diff(msgTs, 'minutes') if msgTs? - if currentTsDiff > RocketChat.settings.get 'Message_AllowEditing_BlockEditInMinutes' - return + blockEditInMinutes = RocketChat.settings.get 'Message_AllowEditing_BlockEditInMinutes' + if blockEditInMinutes? and blockEditInMinutes isnt 0 + msgTs = moment(message.ts) if message.ts? + currentTsDiff = moment().diff(msgTs, 'minutes') if msgTs? + if currentTsDiff > blockEditInMinutes + return this.clearEditing() this.input.value = message.msg diff --git a/client/methods/updateMessage.coffee b/client/methods/updateMessage.coffee index 5e11af6a6aa..b784413eb90 100644 --- a/client/methods/updateMessage.coffee +++ b/client/methods/updateMessage.coffee @@ -13,12 +13,13 @@ Meteor.methods toastr.error t('Message_editing_not_allowed') throw new Meteor.Error 'message-editing-not-allowed', t('Message_editing_not_allowed') - msgTs = moment(originalMessage.ts) if originalMessage.ts? - currentTsDiff = moment().diff(msgTs, 'minutes') if msgTs? - - if currentTsDiff > RocketChat.settings.get 'Message_AllowEditing_BlockEditInMinutes' - toastr.error t('Message_editing_blocked') - throw new Meteor.Error 'message-editing-blocked' + blockEditInMinutes = RocketChat.settings.get 'Message_AllowEditing_BlockEditInMinutes' + if blockEditInMinutes? and blockEditInMinutes isnt 0 + msgTs = moment(originalMessage.ts) if originalMessage.ts? + currentTsDiff = moment().diff(msgTs, 'minutes') if msgTs? + if currentTsDiff > blockEditInMinutes + toastr.error t('Message_editing_blocked') + throw new Meteor.Error 'message-editing-blocked' Tracker.nonreactive -> diff --git a/client/views/app/message.coffee b/client/views/app/message.coffee index 1cd33cec44a..78ad2871fe0 100644 --- a/client/views/app/message.coffee +++ b/client/views/app/message.coffee @@ -48,10 +48,13 @@ Template.message.helpers return unless hasPermission or (isEditAllowed and editOwn) - msgTs = moment(this.ts) if this.ts? - currentTsDiff = moment().diff(msgTs, 'minutes') if msgTs? - - return currentTsDiff < RocketChat.settings.get 'Message_AllowEditing_BlockEditInMinutes' + blockEditInMinutes = RocketChat.settings.get 'Message_AllowEditing_BlockEditInMinutes' + if blockEditInMinutes? and blockEditInMinutes isnt 0 + msgTs = moment(this.ts) if this.ts? + currentTsDiff = moment().diff(msgTs, 'minutes') if msgTs? + return currentTsDiff < blockEditInMinutes + else + return true canDelete: -> if RocketChat.authz.hasAtLeastOnePermission('delete-message', this.rid ) diff --git a/packages/rocketchat-lib/client/MessageAction.coffee b/packages/rocketchat-lib/client/MessageAction.coffee index 1c6cc3bdc11..0951c26a46e 100644 --- a/packages/rocketchat-lib/client/MessageAction.coffee +++ b/packages/rocketchat-lib/client/MessageAction.coffee @@ -74,10 +74,13 @@ Meteor.startup -> return unless hasPermission or (isEditAllowed and editOwn) - msgTs = moment(message.ts) if message.ts? - currentTsDiff = moment().diff(msgTs, 'minutes') if msgTs? - - return currentTsDiff < RocketChat.settings.get 'Message_AllowEditing_BlockEditInMinutes' + blockEditInMinutes = RocketChat.settings.get 'Message_AllowEditing_BlockEditInMinutes' + if blockEditInMinutes? and blockEditInMinutes isnt 0 + msgTs = moment(message.ts) if message.ts? + currentTsDiff = moment().diff(msgTs, 'minutes') if msgTs? + return currentTsDiff < blockEditInMinutes + else + return true order: 1 RocketChat.MessageAction.addButton diff --git a/server/methods/updateMessage.coffee b/server/methods/updateMessage.coffee index 28957b300ef..84fa9ffa064 100644 --- a/server/methods/updateMessage.coffee +++ b/server/methods/updateMessage.coffee @@ -12,11 +12,12 @@ Meteor.methods unless hasPermission or (editAllowed and editOwn) throw new Meteor.Error 'message-editing-not-allowed', "[methods] updateMessage -> Message editing not allowed" - msgTs = moment(originalMessage.ts) if originalMessage.ts? - currentTsDiff = moment().diff(msgTs, 'minutes') if msgTs? - - if currentTsDiff > RocketChat.settings.get 'Message_AllowEditing_BlockEditInMinutes' - throw new Meteor.Error 'message-editing-blocked', "[methods] updateMessage -> Message editing blocked" + blockEditInMinutes = RocketChat.settings.get 'Message_AllowEditing_BlockEditInMinutes' + if blockEditInMinutes? and blockEditInMinutes isnt 0 + msgTs = moment(originalMessage.ts) if originalMessage.ts? + currentTsDiff = moment().diff(msgTs, 'minutes') if msgTs? + if currentTsDiff > blockEditInMinutes + throw new Meteor.Error 'message-editing-blocked' console.log '[methods] updateMessage -> '.green, 'userId:', Meteor.userId(), 'arguments:', arguments