Add changelog, some cleaning
This commit is contained in:
parent
891709ef41
commit
e66a0541be
|
@ -0,0 +1 @@
|
||||||
|
Better validation of edits
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2022 New Vector Ltd
|
* Copyright (c) 2022 The Matrix.org Foundation C.I.C.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
|
|
@ -33,13 +33,15 @@ internal class EventEditValidator @Inject constructor(val cryptoStore: IMXCrypto
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*There are a number of requirements on replacement events, which must be satisfied for the replacement to be considered valid:
|
* There are a number of requirements on replacement events, which must be satisfied for the replacement
|
||||||
|
* to be considered valid:
|
||||||
* As with all event relationships, the original event and replacement event must have the same room_id
|
* As with all event relationships, the original event and replacement event must have the same room_id
|
||||||
* (i.e. you cannot send an event in one room and then an edited version in a different room).
|
* (i.e. you cannot send an event in one room and then an edited version in a different room).
|
||||||
* The original event and replacement event must have the same sender (i.e. you cannot edit someone else’s messages).
|
* The original event and replacement event must have the same sender (i.e. you cannot edit someone else’s messages).
|
||||||
* The replacement and original events must have the same type (i.e. you cannot change the original event’s type).
|
* The replacement and original events must have the same type (i.e. you cannot change the original event’s type).
|
||||||
* The replacement and original events must not have a state_key property (i.e. you cannot edit state events at all).
|
* The replacement and original events must not have a state_key property (i.e. you cannot edit state events at all).
|
||||||
* The original event must not, itself, have a rel_type of m.replace (i.e. you cannot edit an edit — though you can send multiple edits for a single original event).
|
* The original event must not, itself, have a rel_type of m.replace
|
||||||
|
* (i.e. you cannot edit an edit — though you can send multiple edits for a single original event).
|
||||||
* The replacement event (once decrypted, if appropriate) must have an m.new_content property.
|
* The replacement event (once decrypted, if appropriate) must have an m.new_content property.
|
||||||
*
|
*
|
||||||
* If the original event was encrypted, the replacement should be too.
|
* If the original event was encrypted, the replacement should be too.
|
||||||
|
|
|
@ -213,7 +213,7 @@ internal class EventRelationsAggregationProcessor @Inject constructor(
|
||||||
if (content?.relatesTo?.type == RelationType.REPLACE) {
|
if (content?.relatesTo?.type == RelationType.REPLACE) {
|
||||||
Timber.v("###REPLACE in room $roomId for event ${event.eventId}")
|
Timber.v("###REPLACE in room $roomId for event ${event.eventId}")
|
||||||
// A replace!
|
// A replace!
|
||||||
handleReplace(realm, event, roomId, isLocalEcho, content?.relatesTo.eventId)
|
handleReplace(realm, event, roomId, isLocalEcho, content.relatesTo.eventId)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
in EventType.POLL_RESPONSE -> {
|
in EventType.POLL_RESPONSE -> {
|
||||||
|
@ -474,7 +474,7 @@ internal class EventRelationsAggregationProcessor @Inject constructor(
|
||||||
}
|
}
|
||||||
val sourceToDiscard = eventSummary.editSummary?.editions?.firstOrNull { it.eventId == redacted.eventId }
|
val sourceToDiscard = eventSummary.editSummary?.editions?.firstOrNull { it.eventId == redacted.eventId }
|
||||||
if (sourceToDiscard == null) {
|
if (sourceToDiscard == null) {
|
||||||
Timber.w("Redaction of a replace that was not known in aggregation $sourceToDiscard")
|
Timber.w("Redaction of a replace that was not known in aggregation")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
// Need to remove this event from the edition list
|
// Need to remove this event from the edition list
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2022 New Vector Ltd
|
* Copyright (c) 2022 The Matrix.org Foundation C.I.C.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
|
Loading…
Reference in New Issue