mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2024-12-26 13:19:22 -05:00
Add a workaround for bug where some initial join events don't reference creation events in their auth_events
This commit is contained in:
parent
6c485c282d
commit
858e87ab0d
@ -21,7 +21,7 @@ from synapse.api.events.utils import prune_event
|
|||||||
from synapse.api.errors import (
|
from synapse.api.errors import (
|
||||||
AuthError, FederationError, SynapseError, StoreError,
|
AuthError, FederationError, SynapseError, StoreError,
|
||||||
)
|
)
|
||||||
from synapse.api.events.room import RoomMemberEvent
|
from synapse.api.events.room import RoomMemberEvent, RoomCreateEvent
|
||||||
from synapse.api.constants import Membership
|
from synapse.api.constants import Membership
|
||||||
from synapse.util.logutils import log_function
|
from synapse.util.logutils import log_function
|
||||||
from synapse.util.async import run_on_reactor
|
from synapse.util.async import run_on_reactor
|
||||||
@ -618,6 +618,12 @@ class FederationHandler(BaseHandler):
|
|||||||
|
|
||||||
auth_events[(e.type, e.state_key)] = e
|
auth_events[(e.type, e.state_key)] = e
|
||||||
|
|
||||||
|
if event.type == RoomMemberEvent.TYPE and not event.auth_events:
|
||||||
|
if len(event.prev_events) == 1:
|
||||||
|
c = yield self.store.get_event(event.prev_events[0][0])
|
||||||
|
if c.type == RoomCreateEvent.TYPE:
|
||||||
|
auth_events[(c.type, c.state_key)] = c
|
||||||
|
|
||||||
self.auth.check(event, auth_events=auth_events)
|
self.auth.check(event, auth_events=auth_events)
|
||||||
|
|
||||||
yield self.store.persist_event(
|
yield self.store.persist_event(
|
||||||
|
Loading…
Reference in New Issue
Block a user