Implement third party identifier invites

This commit is contained in:
Daniel Wagner-Hall 2015-10-01 17:49:52 +01:00
parent 301141515a
commit 5b3e9713dd
11 changed files with 275 additions and 19 deletions

View file

@ -21,6 +21,7 @@ from synapse.api.constants import Membership, EventTypes
from synapse.types import UserID, RoomAlias
from synapse.util.logcontext import PreserveLoggingContext
from synapse.util.thirdpartyinvites import ThirdPartyInvites
import logging
@ -123,6 +124,16 @@ class BaseHandler(object):
)
)
if (
event.type == EventTypes.Member and
event.content["membership"] == Membership.JOIN and
ThirdPartyInvites.has_join_keys(event.content)
):
yield ThirdPartyInvites.check_key_valid(
self.hs.get_simple_http_client(),
event
)
(event_stream_id, max_stream_id) = yield self.store.persist_event(
event, context=context
)