mirror of
https://git.anonymousland.org/anonymousland/synapse-product.git
synced 2024-12-18 02:34:20 -05:00
Pass through user-supplied content in /join/$room_id
It was always intended to allow custom keys on the join event, but this has at some point been lost. Restore it. If the user specifies keys like "avatar_url" then they will be clobbered.
This commit is contained in:
parent
122c7a43c9
commit
4b31426a02
@ -59,10 +59,13 @@ class RoomMemberHandler(BaseHandler):
|
|||||||
prev_event_ids,
|
prev_event_ids,
|
||||||
txn_id=None,
|
txn_id=None,
|
||||||
ratelimit=True,
|
ratelimit=True,
|
||||||
|
content=None,
|
||||||
):
|
):
|
||||||
|
if content is None:
|
||||||
|
content = {}
|
||||||
msg_handler = self.hs.get_handlers().message_handler
|
msg_handler = self.hs.get_handlers().message_handler
|
||||||
|
|
||||||
content = {"membership": membership}
|
content["membership"] = membership
|
||||||
if requester.is_guest:
|
if requester.is_guest:
|
||||||
content["kind"] = "guest"
|
content["kind"] = "guest"
|
||||||
|
|
||||||
@ -140,6 +143,7 @@ class RoomMemberHandler(BaseHandler):
|
|||||||
remote_room_hosts=None,
|
remote_room_hosts=None,
|
||||||
third_party_signed=None,
|
third_party_signed=None,
|
||||||
ratelimit=True,
|
ratelimit=True,
|
||||||
|
content=None,
|
||||||
):
|
):
|
||||||
key = (room_id,)
|
key = (room_id,)
|
||||||
|
|
||||||
@ -153,6 +157,7 @@ class RoomMemberHandler(BaseHandler):
|
|||||||
remote_room_hosts=remote_room_hosts,
|
remote_room_hosts=remote_room_hosts,
|
||||||
third_party_signed=third_party_signed,
|
third_party_signed=third_party_signed,
|
||||||
ratelimit=ratelimit,
|
ratelimit=ratelimit,
|
||||||
|
content=content,
|
||||||
)
|
)
|
||||||
|
|
||||||
defer.returnValue(result)
|
defer.returnValue(result)
|
||||||
@ -168,7 +173,11 @@ class RoomMemberHandler(BaseHandler):
|
|||||||
remote_room_hosts=None,
|
remote_room_hosts=None,
|
||||||
third_party_signed=None,
|
third_party_signed=None,
|
||||||
ratelimit=True,
|
ratelimit=True,
|
||||||
|
content=None,
|
||||||
):
|
):
|
||||||
|
if content is None:
|
||||||
|
content = {}
|
||||||
|
|
||||||
effective_membership_state = action
|
effective_membership_state = action
|
||||||
if action in ["kick", "unban"]:
|
if action in ["kick", "unban"]:
|
||||||
effective_membership_state = "leave"
|
effective_membership_state = "leave"
|
||||||
@ -218,7 +227,7 @@ class RoomMemberHandler(BaseHandler):
|
|||||||
if inviter and not self.hs.is_mine(inviter):
|
if inviter and not self.hs.is_mine(inviter):
|
||||||
remote_room_hosts.append(inviter.domain)
|
remote_room_hosts.append(inviter.domain)
|
||||||
|
|
||||||
content = {"membership": Membership.JOIN}
|
content["membership"] = Membership.JOIN
|
||||||
|
|
||||||
profile = self.hs.get_handlers().profile_handler
|
profile = self.hs.get_handlers().profile_handler
|
||||||
content["displayname"] = yield profile.get_displayname(target)
|
content["displayname"] = yield profile.get_displayname(target)
|
||||||
@ -272,6 +281,7 @@ class RoomMemberHandler(BaseHandler):
|
|||||||
txn_id=txn_id,
|
txn_id=txn_id,
|
||||||
ratelimit=ratelimit,
|
ratelimit=ratelimit,
|
||||||
prev_event_ids=latest_event_ids,
|
prev_event_ids=latest_event_ids,
|
||||||
|
content=content,
|
||||||
)
|
)
|
||||||
|
|
||||||
@defer.inlineCallbacks
|
@defer.inlineCallbacks
|
||||||
|
@ -268,6 +268,7 @@ class JoinRoomAliasServlet(ClientV1RestServlet):
|
|||||||
action="join",
|
action="join",
|
||||||
txn_id=txn_id,
|
txn_id=txn_id,
|
||||||
remote_room_hosts=remote_room_hosts,
|
remote_room_hosts=remote_room_hosts,
|
||||||
|
content=content,
|
||||||
third_party_signed=content.get("third_party_signed", None),
|
third_party_signed=content.get("third_party_signed", None),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user