diff options
author | Erik Johnston <erikj@jki.re> | 2017-04-27 17:36:30 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-04-27 17:36:30 +0100 |
commit | 25a96e0c63e8499c77c54fac7663423a613a97e1 (patch) | |
tree | 489b3d50df4781636d798e5b7b6317cbdee0ecef /synapse/events | |
parent | Merge pull request #2127 from APwhitehat/alreadystarted (diff) | |
parent | Comment and remove spurious logging (diff) | |
download | synapse-25a96e0c63e8499c77c54fac7663423a613a97e1.tar.xz |
Merge pull request #2163 from matrix-org/erikj/fix_invite_state
Fix invite state to always include all events
Diffstat (limited to 'synapse/events')
-rw-r--r-- | synapse/events/utils.py | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/synapse/events/utils.py b/synapse/events/utils.py index 5bbaef8187..824f4a42e3 100644 --- a/synapse/events/utils.py +++ b/synapse/events/utils.py @@ -225,7 +225,22 @@ def format_event_for_client_v2_without_room_id(d): def serialize_event(e, time_now_ms, as_client_event=True, event_format=format_event_for_client_v1, - token_id=None, only_event_fields=None): + token_id=None, only_event_fields=None, is_invite=False): + """Serialize event for clients + + Args: + e (EventBase) + time_now_ms (int) + as_client_event (bool) + event_format + token_id + only_event_fields + is_invite (bool): Whether this is an invite that is being sent to the + invitee + + Returns: + dict + """ # FIXME(erikj): To handle the case of presence events and the like if not isinstance(e, EventBase): return e @@ -251,6 +266,12 @@ def serialize_event(e, time_now_ms, as_client_event=True, if txn_id is not None: d["unsigned"]["transaction_id"] = txn_id + # If this is an invite for somebody else, then we don't care about the + # invite_room_state as that's meant solely for the invitee. Other clients + # will already have the state since they're in the room. + if not is_invite: + d["unsigned"].pop("invite_room_state", None) + if as_client_event: d = event_format(d) |