Merge branch 'rav/redactions/cross_room_id' into release-v1.2.1
						commit
						70e18cee00
					
				|  | @ -0,0 +1 @@ | |||
| Log when a redaction attempts to redact an event in a different room. | ||||
|  | @ -268,6 +268,14 @@ class EventsWorkerStore(SQLBaseStore): | |||
|                     ) | ||||
|                     continue | ||||
| 
 | ||||
|                 if original_event.room_id != entry.event.room_id: | ||||
|                     logger.info( | ||||
|                         "Withholding redaction %s of event %s from a different room", | ||||
|                         event_id, | ||||
|                         redacted_event_id, | ||||
|                     ) | ||||
|                     continue | ||||
| 
 | ||||
|                 if entry.event.internal_metadata.need_to_check_redaction(): | ||||
|                     original_domain = get_domain_from_id(original_event.sender) | ||||
|                     redaction_domain = get_domain_from_id(entry.event.sender) | ||||
|  | @ -636,9 +644,21 @@ class EventsWorkerStore(SQLBaseStore): | |||
|             if not redaction_entry: | ||||
|                 # we don't have the redaction event, or the redaction event was not | ||||
|                 # authorized. | ||||
|                 logger.debug( | ||||
|                     "%s was redacted by %s but redaction not found/authed", | ||||
|                     original_ev.event_id, | ||||
|                     redaction_id, | ||||
|                 ) | ||||
|                 continue | ||||
| 
 | ||||
|             redaction_event = redaction_entry.event | ||||
|             if redaction_event.room_id != original_ev.room_id: | ||||
|                 logger.debug( | ||||
|                     "%s was redacted by %s but redaction was in a different room!", | ||||
|                     original_ev.event_id, | ||||
|                     redaction_id, | ||||
|                 ) | ||||
|                 continue | ||||
| 
 | ||||
|             # Starting in room version v3, some redactions need to be | ||||
|             # rechecked if we didn't have the redacted event at the | ||||
|  | @ -650,8 +670,15 @@ class EventsWorkerStore(SQLBaseStore): | |||
|                     redaction_event.internal_metadata.recheck_redaction = False | ||||
|                 else: | ||||
|                     # Senders don't match, so the event isn't actually redacted | ||||
|                     logger.debug( | ||||
|                         "%s was redacted by %s but the senders don't match", | ||||
|                         original_ev.event_id, | ||||
|                         redaction_id, | ||||
|                     ) | ||||
|                     continue | ||||
| 
 | ||||
|             logger.debug("Redacting %s due to %s", original_ev.event_id, redaction_id) | ||||
| 
 | ||||
|             # we found a good redaction event. Redact! | ||||
|             redacted_event = prune_event(original_ev) | ||||
|             redacted_event.unsigned["redacted_by"] = redaction_id | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Richard van der Hoff
						Richard van der Hoff