mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-05-08 18:05:07 -04:00
Use RoomVersion
objects (#10934)
Various refactors to use `RoomVersion` objects instead of room version identifiers.
This commit is contained in:
parent
2be0fde3d6
commit
5279b9161b
5 changed files with 50 additions and 48 deletions
|
@ -718,8 +718,8 @@ class FederationHandler(BaseHandler):
|
|||
state_ids,
|
||||
)
|
||||
|
||||
builder = self.event_builder_factory.new(
|
||||
room_version.identifier,
|
||||
builder = self.event_builder_factory.for_room_version(
|
||||
room_version,
|
||||
{
|
||||
"type": EventTypes.Member,
|
||||
"content": event_content,
|
||||
|
@ -897,9 +897,9 @@ class FederationHandler(BaseHandler):
|
|||
)
|
||||
raise SynapseError(403, "User not from origin", Codes.FORBIDDEN)
|
||||
|
||||
room_version = await self.store.get_room_version_id(room_id)
|
||||
builder = self.event_builder_factory.new(
|
||||
room_version,
|
||||
room_version_obj = await self.store.get_room_version(room_id)
|
||||
builder = self.event_builder_factory.for_room_version(
|
||||
room_version_obj,
|
||||
{
|
||||
"type": EventTypes.Member,
|
||||
"content": {"membership": Membership.LEAVE},
|
||||
|
@ -917,7 +917,7 @@ class FederationHandler(BaseHandler):
|
|||
# The remote hasn't signed it yet, obviously. We'll do the full checks
|
||||
# when we get the event back in `on_send_leave_request`
|
||||
await self._event_auth_handler.check_from_context(
|
||||
room_version, event, context, do_sig_check=False
|
||||
room_version_obj.identifier, event, context, do_sig_check=False
|
||||
)
|
||||
except AuthError as e:
|
||||
logger.warning("Failed to create new leave %r because %s", event, e)
|
||||
|
@ -949,10 +949,10 @@ class FederationHandler(BaseHandler):
|
|||
)
|
||||
raise SynapseError(403, "User not from origin", Codes.FORBIDDEN)
|
||||
|
||||
room_version = await self.store.get_room_version_id(room_id)
|
||||
room_version_obj = await self.store.get_room_version(room_id)
|
||||
|
||||
builder = self.event_builder_factory.new(
|
||||
room_version,
|
||||
builder = self.event_builder_factory.for_room_version(
|
||||
room_version_obj,
|
||||
{
|
||||
"type": EventTypes.Member,
|
||||
"content": {"membership": Membership.KNOCK},
|
||||
|
@ -979,7 +979,7 @@ class FederationHandler(BaseHandler):
|
|||
# The remote hasn't signed it yet, obviously. We'll do the full checks
|
||||
# when we get the event back in `on_send_knock_request`
|
||||
await self._event_auth_handler.check_from_context(
|
||||
room_version, event, context, do_sig_check=False
|
||||
room_version_obj.identifier, event, context, do_sig_check=False
|
||||
)
|
||||
except AuthError as e:
|
||||
logger.warning("Failed to create new knock %r because %s", event, e)
|
||||
|
@ -1245,8 +1245,10 @@ class FederationHandler(BaseHandler):
|
|||
}
|
||||
|
||||
if await self._event_auth_handler.check_host_in_room(room_id, self.hs.hostname):
|
||||
room_version = await self.store.get_room_version_id(room_id)
|
||||
builder = self.event_builder_factory.new(room_version, event_dict)
|
||||
room_version_obj = await self.store.get_room_version(room_id)
|
||||
builder = self.event_builder_factory.for_room_version(
|
||||
room_version_obj, event_dict
|
||||
)
|
||||
|
||||
EventValidator().validate_builder(builder)
|
||||
event, context = await self.event_creation_handler.create_new_client_event(
|
||||
|
@ -1254,7 +1256,7 @@ class FederationHandler(BaseHandler):
|
|||
)
|
||||
|
||||
event, context = await self.add_display_name_to_third_party_invite(
|
||||
room_version, event_dict, event, context
|
||||
room_version_obj, event_dict, event, context
|
||||
)
|
||||
|
||||
EventValidator().validate_new(event, self.config)
|
||||
|
@ -1265,7 +1267,7 @@ class FederationHandler(BaseHandler):
|
|||
|
||||
try:
|
||||
await self._event_auth_handler.check_from_context(
|
||||
room_version, event, context
|
||||
room_version_obj.identifier, event, context
|
||||
)
|
||||
except AuthError as e:
|
||||
logger.warning("Denying new third party invite %r because %s", event, e)
|
||||
|
@ -1299,22 +1301,24 @@ class FederationHandler(BaseHandler):
|
|||
|
||||
"""
|
||||
assert_params_in_dict(event_dict, ["room_id"])
|
||||
room_version = await self.store.get_room_version_id(event_dict["room_id"])
|
||||
room_version_obj = await self.store.get_room_version(event_dict["room_id"])
|
||||
|
||||
# NB: event_dict has a particular specced format we might need to fudge
|
||||
# if we change event formats too much.
|
||||
builder = self.event_builder_factory.new(room_version, event_dict)
|
||||
builder = self.event_builder_factory.for_room_version(
|
||||
room_version_obj, event_dict
|
||||
)
|
||||
|
||||
event, context = await self.event_creation_handler.create_new_client_event(
|
||||
builder=builder
|
||||
)
|
||||
event, context = await self.add_display_name_to_third_party_invite(
|
||||
room_version, event_dict, event, context
|
||||
room_version_obj, event_dict, event, context
|
||||
)
|
||||
|
||||
try:
|
||||
await self._event_auth_handler.check_from_context(
|
||||
room_version, event, context
|
||||
room_version_obj.identifier, event, context
|
||||
)
|
||||
except AuthError as e:
|
||||
logger.warning("Denying third party invite %r because %s", event, e)
|
||||
|
@ -1331,7 +1335,7 @@ class FederationHandler(BaseHandler):
|
|||
|
||||
async def add_display_name_to_third_party_invite(
|
||||
self,
|
||||
room_version: str,
|
||||
room_version_obj: RoomVersion,
|
||||
event_dict: JsonDict,
|
||||
event: EventBase,
|
||||
context: EventContext,
|
||||
|
@ -1363,7 +1367,9 @@ class FederationHandler(BaseHandler):
|
|||
# auth checks. If we need the invite and don't have it then the
|
||||
# auth check code will explode appropriately.
|
||||
|
||||
builder = self.event_builder_factory.new(room_version, event_dict)
|
||||
builder = self.event_builder_factory.for_room_version(
|
||||
room_version_obj, event_dict
|
||||
)
|
||||
EventValidator().validate_builder(builder)
|
||||
event, context = await self.event_creation_handler.create_new_client_event(
|
||||
builder=builder
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue