From b70c219a054df1099974a51214f11751f2e11fbd Mon Sep 17 00:00:00 2001 From: Travis Ralston Date: Fri, 13 Oct 2017 20:00:39 -0600 Subject: [PATCH] Consider cases where the sender may not redact their own event Signed-off-by: Travis Ralston --- src/models/room-state.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/models/room-state.js b/src/models/room-state.js index 7e40dd7b1bc..098a142fdd4 100644 --- a/src/models/room-state.js +++ b/src/models/room-state.js @@ -258,7 +258,11 @@ RoomState.prototype.maySendRedactionForEvent = function(mxEvent, userId) { if (!member || member.membership === 'leave') return false; if (mxEvent.status || mxEvent.isRedacted()) return false; - if (mxEvent.getSender() === userId) return true; + + // The user may have been the sender, but they can't redact their own message + // if redactions are blocked. + const canRedact = this.maySendEvent("m.room.redaction", userId); + if (mxEvent.getSender() === userId) return canRedact; return this._hasSufficientPowerLevelFor('redact', member.powerLevel); };