Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Make sure a retention policy is a state event #8527

Merged
merged 2 commits into from
Oct 14, 2020
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
Make sure a retention policy is a state event
babolivier committed Oct 13, 2020
commit 5eef46a002a6eaded934340815943bd87ee70458
3 changes: 3 additions & 0 deletions synapse/events/validator.py
Original file line number Diff line number Diff line change
@@ -83,6 +83,9 @@ def _validate_retention(self, event):
Args:
event (FrozenEvent): The event to validate.
"""
if not event.is_state():
raise SynapseError(code=400, msg="must be a state event")

min_lifetime = event.content.get("min_lifetime")
max_lifetime = event.content.get("max_lifetime")

4 changes: 4 additions & 0 deletions synapse/storage/databases/main/events.py
Original file line number Diff line number Diff line change
@@ -1239,6 +1239,10 @@ def _store_room_message_txn(self, txn, event):
)

def _store_retention_policy_for_room_txn(self, txn, event):
if not event.is_state():
logger.debug("Ignoring non-state m.room.retention event")
return

if hasattr(event, "content") and (
"min_lifetime" in event.content or "max_lifetime" in event.content
):