|
@@ -1226,6 +1226,10 @@ class SyncHandler:
|
|
|
continue
|
|
|
|
|
|
event_with_membership_auth = events_with_membership_auth[member]
|
|
|
+ is_create = (
|
|
|
+ event_with_membership_auth.is_state()
|
|
|
+ and event_with_membership_auth.type == EventTypes.Create
|
|
|
+ )
|
|
|
is_join = (
|
|
|
event_with_membership_auth.is_state()
|
|
|
and event_with_membership_auth.type == EventTypes.Member
|
|
@@ -1233,9 +1237,10 @@ class SyncHandler:
|
|
|
and event_with_membership_auth.content.get("membership")
|
|
|
== Membership.JOIN
|
|
|
)
|
|
|
- if not is_join:
|
|
|
+ if not is_create and not is_join:
|
|
|
# The event must include the desired membership as an auth event, unless
|
|
|
- # it's the first join event for a given user.
|
|
|
+ # it's the `m.room.create` event for a room or the first join event for
|
|
|
+ # a given user.
|
|
|
missing_members.add(member)
|
|
|
auth_event_ids.update(event_with_membership_auth.auth_event_ids())
|
|
|
|