MatrixSynapse/synapse
Andrew Morgan a699c044b6
Abstract code for stripping room state into a separate method (#8671)
This is a requirement for [knocking](https://github.com/matrix-org/synapse/pull/6739), and is abstracting some code that was originally used by the invite flow. I'm separating it out into this PR as it's a fairly contained change.

For a bit of context: when you invite a user to a room, you send them [stripped state events](https://matrix.org/docs/spec/server_server/unstable#put-matrix-federation-v2-invite-roomid-eventid) as part of `invite_room_state`. This is so that their client can display useful information such as the room name and avatar. The same requirement applies to knocking, as it would be nice for clients to be able to display a list of rooms you've knocked on - room name and avatar included.

The reason we're sending membership events down as well is in the case that you are invited to a room that does not have an avatar or name set. In that case, the client should use the displayname/avatar of the inviter. That information is located in the inviter's membership event.

This is optional as knocks don't really have any user in the room to link up to. When you knock on a room, your knock is sent by you and inserted into the room. It wouldn't *really* make sense to show the avatar of a random user - plus it'd be a data leak. So I've opted not to send membership events to the client here. The UX on the client for when you knock on a room without a name/avatar is a separate problem.

In essence this is just moving some inline code to a reusable store method.
2020-10-27 18:42:46 +00:00
..
_scripts
api
app
appservice
config Fix typos and spelling errors. (#8639) 2020-10-23 12:38:40 -04:00
crypto Fix typos and spelling errors. (#8639) 2020-10-23 12:38:40 -04:00
events
federation
groups
handlers Abstract code for stripping room state into a separate method (#8671) 2020-10-27 18:42:46 +00:00
http
logging
metrics
module_api
push
replication
res/templates
rest
server_notices
spam_checker_api
state
static
storage Abstract code for stripping room state into a separate method (#8671) 2020-10-27 18:42:46 +00:00
streams
util Optimise CacheDescriptor (#8594) 2020-10-21 22:57:45 +01:00
__init__.py
event_auth.py
notifier.py
python_dependencies.py
secrets.py
server.py
types.py
visibility.py