summary refs log tree commit diff
path: root/synapse/handlers/room_member.py (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Add option to move event persistence off master (#7517)Erik Johnston2020-05-221-8/+31
|
* Add ability to wait for replication streams (#7542)Erik Johnston2020-05-221-24/+41
| | | | | | | The idea here is that if an instance persists an event via the replication HTTP API it can return before we receive that event over replication, which can lead to races where code assumes that persisting an event immediately updates various caches (e.g. current state of the room). Most of Synapse doesn't hit such races, so we don't do the waiting automagically, instead we do so where necessary to avoid unnecessary delays. We may decide to change our minds here if it turns out there are a lot of subtle races going on. People probably want to look at this commit by commit.
* Add type hints to room member handlers (#7513)Patrick Cloke2020-05-151-132/+152
|
* Update the room member handler to use async/await. (#7507)Patrick Cloke2020-05-151-62/+49
|
* Convert federation handler to async/await. (#7459)Patrick Cloke2020-05-111-3/+2
|
* async/await is_server_admin (#7363)Andrew Morgan2020-05-011-68/+59
|
* Transfer alias mappings when joining an upgraded room (#6946)Andrew Morgan2020-03-301-0/+3
|
* make FederationHandler.do_remotely_reject_invite asyncRichard van der Hoff2020-02-031-2/+4
|
* make FederationHandler.do_invite_join asyncRichard van der Hoff2020-02-031-2/+4
|
* Add `local_current_membership` table (#6655)Erik Johnston2020-01-151-1/+1
| | | | | | | Currently we rely on `current_state_events` to figure out what rooms a user was in and their last membership event in there. However, if the server leaves the room then the table may be cleaned up and that information is lost. So lets add a table that separately holds that information.
* Merge pull request #6629 from matrix-org/rav/kill_event_reference_hashesRichard van der Hoff2020-01-061-6/+5
|\ | | | | Remove a bunch of unused code from event creation
| * Remove unused hashes and depths from _update_membership paramsRichard van der Hoff2020-01-061-13/+4
| |
| * Remove unused hashes and depths from create_event paramsRichard van der Hoff2020-01-061-1/+7
| |
| * rename get_prev_events_for_room to get_prev_events_and_hashes_for_roomRichard van der Hoff2020-01-061-1/+3
| | | | | | | | ... to make way for a new method which just returns the event ids
* | Fix some test failures when frozen_dicts are enabled (#6642)Richard van der Hoff2020-01-061-0/+2
|/ | | | Fixes #4026
* Change EventContext to use the Storage class (#6564)Erik Johnston2019-12-201-2/+2
|
* Propagate reason in remotely rejected invitesErik Johnston2019-11-281-4/+9
|
* Re-add docstring, with caveats detailedAndrew Morgan2019-11-041-1/+1
|
* Transfer upgraded rooms on groupsAndrew Morgan2019-11-041-0/+9
|
* Depublish a room from the public rooms list when it is upgraded (#6232)Andrew Morgan2019-11-011-27/+54
|
* Update black to 19.10b0 (#6304)Amber Brown2019-11-011-16/+19
| | | * update version of black and also fix the mypy config being overridden
* Move tag/push rules room upgrade checking ealier (#6155)Andrew Morgan2019-10-101-18/+44
| | | | | It turns out that _local_membership_update doesn't run when you join a new, remote room. It only runs if you're joining a room that your server already knows about. This would explain #4703 and #5295 and why the transfer would work in testing and some rooms, but not others. This would especially hit single-user homeservers. The check has been moved to right after the room has been joined, and works much more reliably. (Though it may still be a bit awkward of a place).
* Fix yields and copy instead of move push rules on room upgrade (#6144)Andrew Morgan2019-10-021-2/+2
| | | | | | | Copy push rules during a room upgrade from the old room to the new room, instead of deleting them from the old room. For instance, we've defined upgrading of a room multiple times to be possible, and push rules won't be transferred on the second upgrade if they're deleted during the first. Also fix some missing yields that probably broke things quite a bit.
* Move lookup-related functions from RoomMemberHandler to IdentityHandler (#5978)Andrew Morgan2019-09-271-364/+6
| | | Just to have all the methods that make calls to identity services in one place.
* Use the federation blacklist for requests to untrusted Identity Servers (#6000)Andrew Morgan2019-09-231-1/+6
| | | | | Uses a SimpleHttpClient instance equipped with the federation_ip_range_blacklist list for requests to identity servers provided by user input. Does not use a blacklist when contacting identity servers specified by account_threepid_delegates. The homeserver trusts the latter and we don't want to prevent homeserver admins from specifying delegates that are on internal IP addresses. Fixes #5935
* Return timeout error to user for identity server calls (#6073)Andrew Morgan2019-09-231-9/+23
|
* v2 3PID Invites (part of MSC2140) (#5979)Andrew Morgan2019-09-171-23/+81
| | | | | | | 3PID invites require making a request to an identity server to check that the invited 3PID has an Matrix ID linked, and if so, what it is. These requests are being made on behalf of a user. The user will supply an identity server and an access token for that identity server. The homeserver will then forward this request with the access token (using an `Authorization` header) and, if the given identity server doesn't support v2 endpoints, will fall back to v1 (which doesn't require any access tokens). Requires: ~~#5976~~
* Use the v2 Identity Service API for lookups (MSC2134 + MSC2140) (#5976)Andrew Morgan2019-09-111-12/+166
| | | | | | | This is a redo of https://github.com/matrix-org/synapse/pull/5897 but with `id_access_token` accepted. Implements [MSC2134](https://github.com/matrix-org/matrix-doc/pull/2134) plus Identity Service v2 authentication ala [MSC2140](https://github.com/matrix-org/matrix-doc/pull/2140). Identity lookup-related functions were also moved from `RoomMemberHandler` to `IdentityHandler`.
* Add note about extra arg to send_membership_event, remove arg in ↵Andrew Morgan2019-09-111-10/+2
| | | | | | | | remote_reject_invite (#6009) Some small fixes to `room_member.py` found while doing other PRs. 1. Add requester to the base `_remote_reject_invite` method. 2. `send_membership_event`'s docstring was out of date and took in a `remote_room_hosts` arg that was not used and no calling function provided.
* code cleanupsAndrew Morgan2019-09-031-7/+2
|
* Remove unnecessary parentheses around return statements (#5931)Andrew Morgan2019-08-301-1/+1
| | | | | Python will return a tuple whether there are parentheses around the returned values or not. I'm just sick of my editor complaining about this all over the place :)
* Revert "Use the v2 lookup API for 3PID invites (#5897)" (#5937)Andrew Morgan2019-08-301-119/+9
| | | | | This reverts commit 71fc04069a5770a204c3514e0237d7374df257a8. This broke 3PID invites as #5892 was required for it to work correctly.
* Use the v2 lookup API for 3PID invites (#5897)Andrew Morgan2019-08-281-9/+119
| | | | | | | Fixes https://github.com/matrix-org/synapse/issues/5861 Adds support for the v2 lookup API as defined in [MSC2134](https://github.com/matrix-org/matrix-doc/pull/2134). Currently this is only used for 3PID invites. Sytest PR: https://github.com/matrix-org/sytest/pull/679
* Room Complexity Client Implementation (#5783)Amber Brown2019-07-301-4/+80
|
* Replace returnValue with return (#5736)Amber Brown2019-07-231-21/+21
|
* Merge branch 'develop' into babolivier/invite-jsonBrendan Abolivier2019-07-081-39/+1
|\
| * Remove support for invite_3pid_guest. (#5625)Richard van der Hoff2019-07-051-39/+0
| | | | | | | | | | | | | | | | | | This has never been documented, and I'm not sure it's ever been used outside sytest. It's quite a lot of poorly-maintained code, so I'd like to get rid of it. For now I haven't removed the database table; I suggest we leave that for a future clearout.
| * Only ratelimit when sending the emailBrendan Abolivier2019-06-281-1/+2
| | | | | | | | If we do the opposite, an event can arrive after or while sending the email and the 3PID invite event will get ratelimited.
| * Don't update the ratelimiter before sending a 3PID inviteBrendan Abolivier2019-06-281-1/+1
| | | | | | | | This would cause emails being sent, but Synapse responding with a 429 when creating the event. The client would then retry, and with bad timing the same scenario would happen again. Some testing I did ended up sending me 10 emails for one single invite because of this.
* | LintBrendan Abolivier2019-07-081-1/+2
| |
* | Use application/json when querying the IS's /store-invite endpointBrendan Abolivier2019-07-081-4/+17
|/
* Run Black. (#5482)Amber Brown2019-06-201-189/+115
|
* Add third party rules hook for 3PID invitesBrendan Abolivier2019-06-171-0/+10
|
* fix mapping of return values for get_or_register_3pid_guest (#5177)bytepoets-blo2019-05-171-1/+1
| | | * fix mapping of return values for get_or_register_3pid_guest
* Add option to disable per-room profilesBrendan Abolivier2019-05-161-0/+9
|
* Rate limit earlyErik Johnston2019-05-021-2/+3
|
* Merge branch 'develop' of github.com:matrix-org/synapse into ↵Erik Johnston2019-04-261-0/+5
|\ | | | | | | erikj/ratelimit_3pid_invite
| * Add config option to block users from looking up 3PIDs (#5010)Brendan Abolivier2019-04-041-0/+5
| |
* | Ratelimit 3pid invitesErik Johnston2019-04-261-0/+10
|/ | | | | We do ratelimit sending the 3PID invite events, but that happens after spamming the identity server.
* Prevent kicking users who aren't in the room (#4999)Andrew Morgan2019-04-041-0/+9
| | | Prevent kick events from succeeding if the user is not currently in the room.
* Use flagsErik Johnston2019-03-201-0/+6
|
* Transfer local user's push rules on room upgrade (#4838)Andrew Morgan2019-03-121-0/+4
| | | Transfer push rules (notifications) on room upgrade
* Fix registration on workers (#4682)Erik Johnston2019-02-201-1/+1
| | | | | | | | | | * Move RegistrationHandler init to HomeServer * Move post registration actions to RegistrationHandler * Add post regisration replication endpoint * Newsfile
* Remove event ID usage when checking if new roomErik Johnston2019-01-291-1/+2
| | | | | The event ID is changing, so we can no longer get the domain from it. On the other hand, the check is unnecessary.
* Change return syntax in doc stringAndrew Morgan2019-01-281-1/+1
|
* Reuse predecessor methodAndrew Morgan2019-01-281-12/+8
|
* FixesAndrew Morgan2019-01-251-39/+39
|
* Clean up direct_rooms accessAndrew Morgan2019-01-251-3/+3
|
* Use python magicAndrew Morgan2019-01-251-2/+1
|
* Destructure account data tuple before useAndrew Morgan2019-01-251-3/+3
|
* Remove unnecessary null checkAndrew Morgan2019-01-251-7/+6
|
* Move room_tag declaration to be closer to its useAndrew Morgan2019-01-251-4/+5
|
* Move tag and direct state copying into separate functionAndrew Morgan2019-01-251-43/+63
|
* lintAndrew Morgan2019-01-221-1/+3
|
* Prevent duplicate room IDs in m.directAndrew Morgan2019-01-221-10/+9
|
* Fix commentsAndrew Morgan2019-01-221-2/+2
|
* tags, m.direct copying over correctlyAndrew Morgan2019-01-221-2/+49
|
* Fix typosAndrew Morgan2019-01-221-8/+8
|
* Use directory server for room joins (#3899)Richard van der Hoff2018-09-181-0/+5
| | | | | | When we do a join, always try the server we used for the alias lookup first. Fixes #2418
* Merge branch 'develop' of github.com:matrix-org/synapse into ↵Erik Johnston2018-08-201-1/+1
|\ | | | | | | erikj/refactor_state_handler
| * Rename async to async_helpers because `async` is a keyword on Python 3.7 (#3678)Amber Brown2018-08-101-1/+1
| |
* | Revert spurious changeErik Johnston2018-08-201-2/+2
| |
* | Choose state algorithm based on room versionErik Johnston2018-08-091-2/+3
|/
* Merge branch 'develop' of github.com:matrix-org/synapse into ↵Michael Telatynski2018-07-241-117/+343
|\ | | | | | | t3chguy/default_inviter_display_name_3pid
| * Use new gettersErik Johnston2018-07-231-3/+6
| |
| * run isortAmber Brown2018-07-091-8/+6
| |
| * Let users leave the server notice room after joiningRichard van der Hoff2018-05-251-10/+14
| | | | | | | | They still can't reject invites, but we let them leave it.
| * custom error code for not leaving server notices roomRichard van der Hoff2018-05-221-0/+1
| |
| * Make sure we reject attempts to invite the notices userRichard van der Hoff2018-05-181-0/+7
| |
| * fix missing yield for server_notices_roomRichard van der Hoff2018-05-171-3/+4
| |
| * Infrastructure for a server notices roomRichard van der Hoff2018-05-171-4/+36
| | | | | | | | | | | | | | Server Notices use a special room which the user can't dismiss. They are created on demand when some other bit of the code calls send_notice. (This doesn't actually do much yet becuse we don't call send_notice anywhere)
| * Avoid creating events with huge numbers of prev_eventsRichard van der Hoff2018-04-161-4/+9
| | | | | | | | | | | | In most cases, we limit the number of prev_events for a given event to 10 events. This fixes a particular code path which created events with huge numbers of prev_events.
| * Return a 404 rather than a 500 on rejoining empty roomsRichard van der Hoff2018-04-091-0/+8
| | | | | | | | | | | | | | Filter ourselves out of the server list before checking for an empty remote host list, to fix 500 error Fixes #2141
| * _remote_join and co take a requesterErik Johnston2018-03-131-4/+4
| |
| * Merge pull request #2987 from matrix-org/erikj/split_room_member_handlerErik Johnston2018-03-131-98/+185
| |\ | | | | | | Split RoomMemberHandler into base and master class
| | * Add missing param to docstringsErik Johnston2018-03-131-0/+3
| | |
| | * Correct import orderErik Johnston2018-03-131-3/+3
| | |
| | * Move user_*_room distributor stuff to master classErik Johnston2018-03-131-5/+50
| | | | | | | | | | | | | | | I added yields when calling user_left_room, but they shouldn't matter on the master process as they always return None anyway.
| | * Split RoomMemberHandler into base and master classErik Johnston2018-03-131-96/+135
| | | | | | | | | | | | | | | | | | | | | | | | The intention here is to split the class into the bits that can be done on workers and the bits that have to be done on the master. In future there will also be a class that can be run on the worker, which will delegate work to the master when necessary.
| * | Merge pull request #2981 from matrix-org/erikj/factor_remote_leaveErik Johnston2018-03-131-22/+54
| |\| | | | | | | Factor out _remote_reject_invite in RoomMember
| | * Merge branch 'develop' of github.com:matrix-org/synapse into ↵Erik Johnston2018-03-131-14/+10
| | |\ | | | | | | | | | | | | erikj/factor_remote_leave
| | * | Add docstringErik Johnston2018-03-131-0/+26
| | | |
| | * | Factor out _remote_reject_invite in RoomMemberErik Johnston2018-03-131-22/+28
| | | |
| * | | Merge pull request #2979 from matrix-org/erikj/no_handlersErik Johnston2018-03-131-2/+1
| |\ \ \ | | |_|/ | |/| | Don't build handlers on workers unnecessarily
| | * | Split replication layer into twoErik Johnston2018-03-131-2/+1
| | |/
| * | Merge pull request #2980 from matrix-org/erikj/rm_privErik Johnston2018-03-131-7/+7
| |\ \ | | | | | | | | Make RoomMemberHandler functions private that can be
| | * | Make functions private that can beErik Johnston2018-03-131-7/+7
| | |/
| * / Refactor get_or_register_3pid_guestErik Johnston2018-03-131-7/+3
| |/
| * Add missing yield during 3pid signature checksErik Johnston2018-03-021-1/+1
| |
| * Move back to hs.is_mineErik Johnston2018-03-011-7/+6
| |
| * Move RoomMemberHandler out of HandlersErik Johnston2018-03-011-23/+31
| |
| * Update copyrightErik Johnston2018-02-061-0/+1
| |
| * Update places where we create eventsErik Johnston2018-02-051-9/+11
| |
| * Copy dict in update_membership tooErik Johnston2017-12-071-0/+4
| |
| * Merge pull request #2466 from matrix-org/erikj/groups_mergedErik Johnston2017-10-111-1/+3
| |\ | | | | | | Initial Group Implementation
| | * Merge branch 'develop' into erikj/groups_mergedDavid Baker2017-10-021-0/+22
| | |\
| | * | Split out profile handler to fix testsErik Johnston2017-08-251-1/+3
| | | |
| * | | Spam checking: add the invitee to user_may_inviteDavid Baker2017-10-051-1/+1
| | | |
| * | | pass room id tooDavid Baker2017-10-031-1/+3
| | | |
| * | | Federation was passing strings anywayDavid Baker2017-10-031-1/+1
| | | | | | | | | | | | | | | | so pass string everywhere
| * | | this shouldn't be debugDavid Baker2017-10-031-2/+2
| | | |
| * | | better loggingDavid Baker2017-10-031-4/+9
| | | |
| * | | Skip spam check for admin usersDavid Baker2017-10-031-8/+8
| | | |
| * | | Allow spam checker to reject invites tooDavid Baker2017-10-031-6/+14
| | |/ | |/|
| * | Add a config option to block all room invites (#2457)Richard van der Hoff2017-09-191-0/+22
| |/ | | | | | | | | - allows sysadmins the ability to lock down their servers so that people can't send their users room invites.
* / if inviter_display_name == ""||None then default to inviter MXIDMichael Telatynski2018-06-131-0/+4
|/ | | | to prevent email invite from "None"
* Handle all cases of sending membership eventsErik Johnston2017-06-191-0/+5
|
* Add shutdown room APIErik Johnston2017-06-191-0/+5
|
* Speed up get_joined_hostsErik Johnston2017-05-161-1/+2
|
* Add more granular event send metricsErik Johnston2017-05-021-0/+1
|
* Broaden the conditions for locally_rejecting invitesRichard van der Hoff2017-04-211-1/+7
| | | | | | | | | | The logic for marking invites as locally rejected was all well and good, but didn't happen when the remote server returned a 500, or wasn't reachable, or had no DNS, or whatever. Just expand the except clause to catch everything. Fixes https://github.com/matrix-org/synapse/issues/761.
* Remove redundant functionRichard van der Hoff2017-04-211-10/+5
| | | | | inline `reject_remote_invite`, which only existed to make tracing the callflow more difficult.
* Allow forgetting rooms you're banned fromDavid Baker2017-02-151-1/+3
|
* Add missing None checkErik Johnston2017-01-111-5/+6
|
* Merge pull request #1787 from matrix-org/erikj/linearize_memberErik Johnston2017-01-101-4/+15
|\ | | | | Linearize updates to membership via PUT /state/
| * Linearize updates to membership via PUT /state/Erik Johnston2017-01-091-4/+15
| |
* | Name linearizer's for better logsErik Johnston2017-01-091-1/+1
|/
* handlers/room_member: fix guest access check when joining roomsPatrik Oldsberg2017-01-061-4/+6
| | | | Signed-off-by: Patrik Oldsberg <patrik.oldsberg@ericsson.com>
* Fix membership changes to be idempotentMark Haines2016-09-021-0/+6
|
* Correctly handle the difference between prev and current stateErik Johnston2016-08-311-3/+3
|
* Replace context.current_state with context.current_state_idsErik Johnston2016-08-251-40/+84
|
* Pass through user-supplied content in /join/$room_idKegan Dougal2016-08-231-2/+12
| | | | | | | 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.
* Only process one local membership event per room at a timeErik Johnston2016-08-121-1/+1
|
* Add `create_requester` functionRichard van der Hoff2016-07-261-11/+9
| | | | | Wrap the `Requester` constructor with a function which provides sensible defaults, and use it throughout
* Remove unused get_joined_rooms_for_userMark Haines2016-05-171-15/+0
|
* Remove get_joined_rooms_for_user from RoomMemberHandlerMark Haines2016-05-161-2/+1
|
* Replaces calls to fetch_room_distributions_into with get_joined_hosts_for_roomMark Haines2016-05-161-29/+0
|
* Fix typoMark Haines2016-05-111-1/+1
|
* Move _create_new_client_event and handle_new_client_event out of base handlerMark Haines2016-05-111-2/+2
|
* fix typoMatthew Hodgson2016-04-281-1/+1
|
* Remove some unused functions (#711)Mark Haines2016-04-081-13/+0
| | | | | | | | * Remove some unused functions * get_room_events_stream is only used in tests * is_exclusive_room might actually be something we want
* Move all the wrapper functions for distributor.fireMark Haines2016-04-081-15/+1
| | | | | | | Move the functions inside the distributor and import them where needed. This reduces duplication and makes it possible for flake8 to detect when the functions aren't used in a given file.
* Merge pull request #700 from matrix-org/erikj/deduplicate_joinsErik Johnston2016-04-071-0/+31
|\ | | | | Deduplicate membership changes
| * Deduplicate joinsErik Johnston2016-04-071-0/+31
| |
* | Set profile information when joining rooms remotelyErik Johnston2016-04-071-0/+5
|/
* Merge pull request #691 from matrix-org/erikj/memberErik Johnston2016-04-051-4/+14
|\ | | | | Fix stuck invites
| * Fix stuck invitesErik Johnston2016-04-051-4/+14
| | | | | | | | | | | | | | | | If rejecting a remote invite fails with an error response don't fail the entire request; instead mark the invite as locally rejected. This fixes the bug where users can get stuck invites which they can neither accept nor reject.
* | Merge pull request #690 from matrix-org/erikj/memberErik Johnston2016-04-051-1/+4
|\| | | | | Store invites in a separate table.
| * Docs and indentsErik Johnston2016-04-041-1/+4
| |
| * Store invites in a separate table.Erik Johnston2016-04-041-1/+1
| |
* | Merge pull request #689 from matrix-org/erikj/memberErik Johnston2016-04-041-93/+147
|\| | | | | Do checks for memberships before creating events
| * Use computed prev event idsErik Johnston2016-04-011-0/+3
| |
| * Do checks for memberships before creating eventsErik Johnston2016-04-011-93/+144
| |
* | Use google style doc strings.Mark Haines2016-04-011-24/+24
|/ | | | | | | pycharm supports them so there is no need to use the other format. Might as well convert the existing strings to reduce the risk of people accidentally cargo culting the wrong doc string format.
* Split out RoomMemberHandlerErik Johnston2016-03-311-0/+646