Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Do not assume that the contents dictionary includes history_visibility. (#8945) | Patrick Cloke | 2020-12-16 | 1 | -3/+4 |
| | |||||
* | Allow spam-checker modules to be provide async methods. (#8890) | David Teller | 2020-12-11 | 1 | -2/+2 |
| | | | | Spam checker modules can now provide async methods. This is implemented in a backwards-compatible manner. | ||||
* | Don't ratelimit autojoining of rooms (#8921) | Erik Johnston | 2020-12-11 | 1 | -1/+4 |
| | | | Fixes #8866 | ||||
* | Add admin API for logging in as a user (#8617) | Erik Johnston | 2020-11-17 | 1 | -3/+7 |
| | |||||
* | Optimise createRoom with multiple invites (#8559) | Richard van der Hoff | 2020-10-29 | 1 | -11/+18 |
| | | | | | By not dropping the membership lock between invites, we can stop joins from grabbing the lock when we're half-done and slowing the whole thing down. | ||||
* | Fix typos and spelling errors. (#8639) | Patrick Cloke | 2020-10-23 | 1 | -1/+1 |
| | |||||
* | Remove redundant `token_id` parameter to create_event | Richard van der Hoff | 2020-10-13 | 1 | -1/+0 |
| | | | | this is always the same as requester.access_token_id. | ||||
* | Add type hints to response cache. (#8507) | Patrick Cloke | 2020-10-09 | 1 | -1/+1 |
| | |||||
* | Remove the deprecated Handlers object (#8494) | Patrick Cloke | 2020-10-09 | 1 | -1/+1 |
| | | | All handlers now available via get_*_handler() methods on the HomeServer. | ||||
* | kill off `send_nonmember_event` | Richard van der Hoff | 2020-10-05 | 1 | -2/+2 |
| | | | | This is now redundant, and we can just call `handle_new_client_event` directly. | ||||
* | pull up event.sender assertion | Richard van der Hoff | 2020-10-05 | 1 | -0/+1 |
| | |||||
* | Allow ThirdPartyEventRules modules to manipulate public room state (#8292) | Andrew Morgan | 2020-10-05 | 1 | -0/+9 |
| | | | | | This PR allows `ThirdPartyEventRules` modules to view, manipulate and block changes to the state of whether a room is published in the public rooms directory. While the idea of whether a room is in the public rooms list is not kept within an event in the room, `ThirdPartyEventRules` generally deal with controlling which modifications can happen to a room. Public rooms fits within that idea, even if its toggle state isn't controlled through a state event. | ||||
* | Enable mypy checking for unreachable code and fix instances. (#8432) | Patrick Cloke | 2020-10-01 | 1 | -2/+0 |
| | |||||
* | Make token serializing/deserializing async (#8427) | Erik Johnston | 2020-09-30 | 1 | -3/+5 |
| | | | The idea is that in future tokens will encode a mapping of instance to position. However, we don't want to include the full instance name in the string representation, so instead we'll have a mapping between instance name and an immutable integer ID in the DB that we can use instead. We'll then do the lookup when we serialize/deserialize the token (we could alternatively pass around an `Instance` type that includes both the name and ID, but that turns out to be a lot more invasive). | ||||
* | Various clean ups to room stream tokens. (#8423) | Erik Johnston | 2020-09-29 | 1 | -2/+2 |
| | |||||
* | Simplify super() calls to Python 3 syntax. (#8344) | Patrick Cloke | 2020-09-18 | 1 | -1/+1 |
| | | | | | | | This converts calls like super(Foo, self) -> super(). Generated with: sed -i "" -Ee 's/super\([^\(]+\)/super()/g' **/*.py | ||||
* | Add experimental support for sharding event persister. Again. (#8294) | Erik Johnston | 2020-09-14 | 1 | -5/+9 |
| | | | | | | This is *not* ready for production yet. Caveats: 1. We should write some tests... 2. The stream token that we use for events can get stalled at the minimum position of all writers. This means that new events may not be processed and e.g. sent down sync streams if a writer isn't writing or is slow. | ||||
* | Make `StreamToken.room_key` be a `RoomStreamToken` instance. (#8281) | Erik Johnston | 2020-09-11 | 1 | -8/+7 |
| | |||||
* | Stop sub-classing object (#8249) | Patrick Cloke | 2020-09-04 | 1 | -3/+3 |
| | |||||
* | Revert "Add experimental support for sharding event persister. (#8170)" (#8242) | Brendan Abolivier | 2020-09-04 | 1 | -9/+5 |
| | | | | | | | * Revert "Add experimental support for sharding event persister. (#8170)" This reverts commit 82c1ee1c22a87b9e6e3179947014b0f11c0a1ac3. * Changelog | ||||
* | Add experimental support for sharding event persister. (#8170) | Erik Johnston | 2020-09-02 | 1 | -5/+9 |
| | | | | | | This is *not* ready for production yet. Caveats: 1. We should write some tests... 2. The stream token that we use for events can get stalled at the minimum position of all writers. This means that new events may not be processed and e.g. sent down sync streams if a writer isn't writing or is slow. | ||||
* | Convert state and stream stores and related code to async (#8194) | Patrick Cloke | 2020-08-28 | 1 | -1/+1 |
| | |||||
* | Define StateMap as immutable and add a MutableStateMap type. (#8183) | Patrick Cloke | 2020-08-28 | 1 | -1/+2 |
| | |||||
* | Convert simple_update* and simple_select* to async (#8173) | Patrick Cloke | 2020-08-27 | 1 | -4/+2 |
| | |||||
* | Stop shadow-banned users from sending non-member events. (#8142) | Patrick Cloke | 2020-08-24 | 1 | -1/+18 |
| | |||||
* | Stop shadow-banned users from sending invites. (#8095) | Patrick Cloke | 2020-08-20 | 1 | -2/+14 |
| | |||||
* | Add type hints to synapse.handlers.room (#8090) | Erik Johnston | 2020-08-14 | 1 | -38/+66 |
| | |||||
* | Convert streams to async. (#8014) | Patrick Cloke | 2020-08-04 | 1 | -5/+5 |
| | |||||
* | Fix up types and comments that refer to Deferreds. (#7945) | Patrick Cloke | 2020-07-24 | 1 | -9/+4 |
| | |||||
* | Add delete room admin endpoint (#7613) | Dirk Klimpel | 2020-07-14 | 1 | -2/+206 |
| | | | | | | | | | | | | | | | | | | The Delete Room admin API allows server admins to remove rooms from server and block these rooms. `DELETE /_synapse/admin/v1/rooms/<room_id>` It is a combination and improvement of "[Shutdown room](https://github.com/matrix-org/synapse/blob/develop/docs/admin_api/shutdown_room.md)" and "[Purge room](https://github.com/matrix-org/synapse/blob/develop/docs/admin_api/purge_room.md)" API. Fixes: #6425 It also fixes a bug in [synapse/storage/data_stores/main/room.py](synapse/storage/data_stores/main/room.py) in ` get_room_with_stats`. It should return `None` if the room is unknown. But it returns an `IndexError`. https://github.com/matrix-org/synapse/blob/901b1fa561e3cc661d78aa96d59802cf2078cb0d/synapse/storage/data_stores/main/room.py#L99-L105 Related to: - #5575 - https://github.com/Awesome-Technologies/synapse-admin/issues/17 Signed-off-by: Dirk Klimpel dirk@klimpel.org | ||||
* | Replace all remaining six usage with native Python 3 equivalents (#7704) | Dagfinn Ilmari Mannsåker | 2020-06-16 | 1 | -3/+1 |
| | |||||
* | Replace iteritems/itervalues/iterkeys with native versions. (#7692) | Patrick Cloke | 2020-06-15 | 1 | -3/+3 |
| | |||||
* | Add option to enable encryption by default for new rooms (#7639) | Andrew Morgan | 2020-06-10 | 1 | -27/+47 |
| | | | | | | | | | Fixes https://github.com/matrix-org/synapse/issues/2431 Adds config option `encryption_enabled_by_default_for_room_type`, which determines whether encryption should be enabled with the default encryption algorithm in private or public rooms upon creation. Whether the room is private or public is decided based upon the room creation preset that is used. Part of this PR is also pulling out all of the individual instances of `m.megolm.v1.aes-sha2` into a constant variable to eliminate typos ala https://github.com/matrix-org/synapse/pull/7637 Based on #7637 | ||||
* | Add option to move event persistence off master (#7517) | Erik Johnston | 2020-05-22 | 1 | -0/+7 |
| | |||||
* | Add ability to wait for replication streams (#7542) | Erik Johnston | 2020-05-22 | 1 | -20/+45 |
| | | | | | | | 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. | ||||
* | On upgrade room only send canonical alias once. (#7547) | Erik Johnston | 2020-05-22 | 1 | -55/+60 |
| | | | | | | | | Instead of doing a complicated dance of deleting and moving aliases one by one, which sends a canonical alias update into the old room for each one, lets do it all in one go. This also changes the function to move *all* local alias events to the new room, however that happens later on anyway. | ||||
* | Convert the room handler to async/await. (#7396) | Patrick Cloke | 2020-05-04 | 1 | -24/+18 |
| | |||||
* | async/await is_server_admin (#7363) | Andrew Morgan | 2020-05-01 | 1 | -63/+58 |
| | |||||
* | Check on room creation if the user is allowed to publish the room to the ↵ | PeerD | 2020-04-13 | 1 | -0/+7 |
| | | | | room directory. (#7260) | ||||
* | Default PL100 to enable encryption in a room (#7230) | Andrew Morgan | 2020-04-09 | 1 | -0/+1 |
| | |||||
* | Remove special casing of `m.room.aliases` events (#7034) | Patrick Cloke | 2020-03-17 | 1 | -15/+1 |
| | |||||
* | Clarify list/set/dict/tuple comprehensions and enforce via flake8 (#6957) | Patrick Cloke | 2020-02-21 | 1 | -1/+1 |
| | | | | Ensure good comprehension hygiene using flake8-comprehensions. | ||||
* | Do not send alias events when creating / upgrading a room (#6941) | Patrick Cloke | 2020-02-20 | 1 | -23/+13 |
| | | | Stop emitting room alias update events during room creation/upgrade. | ||||
* | Stop sending events when creating or deleting aliases (#6904) | Patrick Cloke | 2020-02-18 | 1 | -5/+1 |
| | | | Stop sending events when creating or deleting associations (room aliases). Send an updated canonical alias event if one of the alt_aliases is deleted. | ||||
* | Raise the default power levels for invites, tombstones and server acls (#6834) | Andrew Morgan | 2020-02-17 | 1 | -1/+9 |
| | |||||
* | Third party event rules Update (#6781) | PeerD | 2020-02-06 | 1 | -1/+5 |
| | |||||
* | Reduce amount of logging at INFO level. (#6862) | Erik Johnston | 2020-02-06 | 1 | -5/+5 |
| | | | | | | | | A lot of the things we log at INFO are now a bit superfluous, so lets make them DEBUG logs to reduce the amount we log by default. Co-Authored-By: Brendan Abolivier <babolivier@matrix.org> Co-authored-by: Brendan Abolivier <github@brendanabolivier.com> | ||||
* | Fix detecting unknown devices from remote encrypted events. (#6848) | Erik Johnston | 2020-02-04 | 1 | -1/+1 |
| | | | | | | | | We were looking at the wrong event type (`m.room.encryption` vs `m.room.encrypted`). Also fixup the duplicate `EvenTypes` entries. Introduced in #6776. | ||||
* | s/get_room_version/get_room_version_id/ | Richard van der Hoff | 2020-01-31 | 1 | -1/+1 |
| | | | | | ... to make way for a forthcoming get_room_version which returns a RoomVersion object. | ||||
* | Set the PL for aliases events to 0. | Richard van der Hoff | 2020-01-29 | 1 | -2/+15 |
| | |||||
* | Factor out a `copy_power_levels_contents` method | Richard van der Hoff | 2020-01-29 | 1 | -12/+11 |
| | | | | I'm going to need another copy (hah!) of this. | ||||
* | Add `rooms.room_version` column (#6729) | Erik Johnston | 2020-01-27 | 1 | -20/+32 |
| | | | This is so that we don't have to rely on pulling it out from `current_state_events` table. | ||||
* | Add StateMap type alias (#6715) | Erik Johnston | 2020-01-16 | 1 | -6/+18 |
| | |||||
* | Fix some test failures when frozen_dicts are enabled (#6642) | Richard van der Hoff | 2020-01-06 | 1 | -6/+9 |
| | | | | Fixes #4026 | ||||
* | Fix power levels being incorrectly set in old and new rooms after a room ↵ | Andrew Morgan | 2020-01-06 | 1 | -7/+10 |
| | | | | | | upgrade (#6633) Modify a copy of an upgraded room's PL before sending to the new room | ||||
* | Change EventContext to use the Storage class (#6564) | Erik Johnston | 2019-12-20 | 1 | -1/+1 |
| | |||||
* | Merge release-v1.7.1 into develop | Richard van der Hoff | 2019-12-18 | 1 | -2/+5 |
|\ | |||||
| * | Incorporate review | Brendan Abolivier | 2019-12-16 | 1 | -1/+1 |
| | | |||||
| * | Use the filtered version of an event when responding to /context requests ↵ | Brendan Abolivier | 2019-12-16 | 1 | -1/+4 |
| | | | | | | | | | | | | for that event Sometimes the filtering function can return a pruned version of an event (on top of either the event itself or an empty list), if it thinks the user should be able to see that there's an event there but not the content of that event. Therefore, the previous logic of 'if filtered is empty then we can use the event we retrieved from the database' is flawed, and we should use the event returned by the filtering function. | ||||
* | | Remove unused `get_pagination_rows` methods. (#6557) | Erik Johnston | 2019-12-17 | 1 | -12/+0 |
|/ | | | Remove unused get_pagination_rows methods | ||||
* | Merge branch 'develop' into babolivier/context_filters | Brendan Abolivier | 2019-12-04 | 1 | -5/+31 |
|\ | |||||
| * | Transfer power level state events on room upgrade (#6237) | Andrew Morgan | 2019-12-02 | 1 | -5/+31 |
| | | |||||
* | | Incorporate review | Brendan Abolivier | 2019-12-04 | 1 | -2/+1 |
| | | |||||
* | | Also filter state events | Brendan Abolivier | 2019-11-06 | 1 | -1/+7 |
| | | |||||
* | | Only filter if a filter was provided | Brendan Abolivier | 2019-11-05 | 1 | -4/+6 |
| | | |||||
* | | Update copyright | Brendan Abolivier | 2019-11-05 | 1 | -1/+2 |
| | | |||||
* | | Filter events_before and events_after in /context requests | Brendan Abolivier | 2019-11-05 | 1 | -2/+4 |
|/ | | | | While the current version of the spec doesn't say much about how this endpoint uses filters (see https://github.com/matrix-org/matrix-doc/issues/2338), the current implementation is that some fields of an EventFilter apply (the ones that are used when running the SQL query) and others don't (the ones that are used by the filter itself) because we don't call event_filter.filter(...). This seems counter-intuitive and probably not what we want so this commit fixes it. | ||||
* | Depublish a room from the public rooms list when it is upgraded (#6232) | Andrew Morgan | 2019-11-01 | 1 | -1/+7 |
| | |||||
* | Update black to 19.10b0 (#6304) | Amber Brown | 2019-11-01 | 1 | -14/+15 |
| | | | * update version of black and also fix the mypy config being overridden | ||||
* | Merge pull request #6294 from matrix-org/erikj/add_state_storage | Erik Johnston | 2019-10-31 | 1 | -2/+4 |
|\ | | | | | Add StateGroupStorage interface | ||||
| * | Port to use state storage | Erik Johnston | 2019-10-30 | 1 | -2/+4 |
| | | |||||
* | | Remove usage of deprecated logger.warn method from codebase (#6271) | Andrew Morgan | 2019-10-31 | 1 | -1/+1 |
|/ | | | Replace every instance of `logger.warn` with `logger.warning` as the former is deprecated. | ||||
* | Add domain validation when creating room with list of invitees (#6121) | werner291 | 2019-10-10 | 1 | -1/+3 |
| | |||||
* | Use the v2 Identity Service API for lookups (MSC2134 + MSC2140) (#5976) | Andrew Morgan | 2019-09-11 | 1 | -1/+3 |
| | | | | | | | 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`. | ||||
* | Remove double return statements (#5962) | Andrew Morgan | 2019-09-03 | 1 | -1/+0 |
| | | | | | | | | | | Remove all the "double return" statements which were a result of us removing all the instances of ``` defer.returnValue(...) return ``` statements when we switched to python3 fully. | ||||
* | Don't create broken room when power_level_content_override.users does not ↵ | Michael Telatynski | 2019-08-15 | 1 | -1/+13 |
| | | | | contain creator_id. (#5633) | ||||
* | Replace returnValue with return (#5736) | Amber Brown | 2019-07-23 | 1 | -8/+8 |
| | |||||
* | Prevent multiple upgrades on the same room at once (#5051) | Andrew Morgan | 2019-06-25 | 1 | -51/+89 |
| | | | | | | | Closes #4583 Does slightly less than #5045, which prevented a room from being upgraded multiple times, one after another. This PR still allows that, but just prevents two from happening at the same time. Mostly just to mitigate the fact that servers are slow and it can take a moment for the room upgrade to actually complete. We don't want people sending another request to upgrade the room when really they just thought the first didn't go through. | ||||
* | Run Black. (#5482) | Amber Brown | 2019-06-20 | 1 | -184/+111 |
| | |||||
* | Add third party rules hook into create room | Erik Johnston | 2019-06-17 | 1 | -1/+24 |
| | |||||
* | Add config option for setting homeserver's default room version (#5223) | Andrew Morgan | 2019-05-23 | 1 | -2/+7 |
| | | | | | Replaces DEFAULT_ROOM_VERSION constant with a method that first checks the config, then returns a hardcoded value if the option is not present. That hardcoded value is now located in the server.py config file. | ||||
* | Add some limitations to alias creation | Brendan Abolivier | 2019-05-02 | 1 | -1/+2 |
| | |||||
* | Transfer related groups on room upgrade (#4990) | Andrew Morgan | 2019-04-02 | 1 | -0/+1 |
| | | | Transfers the m.room.related_groups state event on room upgrade. | ||||
* | Collect room-version variations into one place (#4969) | Richard van der Hoff | 2019-04-01 | 1 | -8/+3 |
| | | | | Collect all the things that make room-versions different to one another into one place, so that it's easier to define new room versions. | ||||
* | lint | Andrew Morgan | 2019-02-18 | 1 | -1/+3 |
| | |||||
* | Move member event processing and changelog fix | Andrew Morgan | 2019-02-18 | 1 | -9/+7 |
| | |||||
* | Membership events are done later | Andrew Morgan | 2019-02-18 | 1 | -12/+20 |
| | |||||
* | Transfer bans on room upgrade | Andrew Morgan | 2019-02-18 | 1 | -0/+14 |
| | |||||
* | Transfer Server ACLs on room upgrade | Andrew Morgan | 2019-02-11 | 1 | -0/+1 |
| | |||||
* | New function for getting room's create event | Andrew Morgan | 2019-01-31 | 1 | -7/+1 |
| | |||||
* | lint | Andrew Morgan | 2019-01-31 | 1 | -2/+4 |
| | |||||
* | Copy over non-federatable trait on room upgrade | Andrew Morgan | 2019-01-30 | 1 | -0/+14 |
| | |||||
* | Merge pull request #4482 from matrix-org/erikj/event_auth_room_version | Erik Johnston | 2019-01-28 | 1 | -1/+4 |
|\ | | | | | Pass through room version to event auth | ||||
| * | Pass through room version to event auth | Erik Johnston | 2019-01-25 | 1 | -1/+4 |
| | | |||||
* | | Join logic covers both room creator and arbitrary users | Andrew Morgan | 2019-01-22 | 1 | -33/+0 |
| | | |||||
* | | tags, m.direct copying over correctly | Andrew Morgan | 2019-01-22 | 1 | -9/+13 |
| | | |||||
* | | Migrating dm and room tags work for migrator | Andrew Morgan | 2019-01-22 | 1 | -2/+13 |
| | | |||||
* | | Prevent crash on user who doesn't have any direct rooms | Andrew Morgan | 2019-01-22 | 1 | -1/+1 |
| | | |||||
* | | Preserve DM status of a room on upgrade | Andrew Morgan | 2019-01-22 | 1 | -0/+19 |
| | | | | | | | | Signed-off-by: Andrew Morgan <andrew@amorgan.xyz> | ||||
* | | Fix typo | Andrew Morgan | 2019-01-22 | 1 | -2/+2 |
|/ | |||||
* | Migrate encryption state on room upgrade (#4411) | Andrew Morgan | 2019-01-21 | 1 | -0/+1 |
| | | | | | | | | * Migrate encryption state on room upgrade Signed-off-by: Andrew Morgan <andrew@amorgan.xyz> * Add changelog file | ||||
* | create support user (#4141) | Neil Johnson | 2018-12-14 | 1 | -1/+1 |
| | | | | | | Allow for the creation of a support user. A support user can access the server, join rooms, interact with other users, but does not appear in the user directory nor does it contribute to monthly active user limits. | ||||
* | Merge pull request #4101 from matrix-org/rav/aliases_for_upgrades | Richard van der Hoff | 2018-10-31 | 1 | -8/+112 |
|\ | | | | | Attempt to move room aliases on room upgrades | ||||
| * | Avoid else clause on exception for clarity | Richard van der Hoff | 2018-10-31 | 1 | -2/+1 |
| | | |||||
| * | Attempt to move room aliases on room upgrades | Richard van der Hoff | 2018-10-31 | 1 | -8/+113 |
| | | |||||
* | | Log some bits about event creation (#4121) | Richard van der Hoff | 2018-10-31 | 1 | -0/+4 |
|/ | | | | I found these helpful in debugging my room upgrade tests. | ||||
* | Merge pull request #4100 from matrix-org/rav/room_upgrade_avatar | Richard van der Hoff | 2018-10-29 | 1 | -1/+2 |
|\ | | | | | Remember to copy the avatar on room upgrades | ||||
| * | Remember to copy the avatar on room upgrades | Richard van der Hoff | 2018-10-26 | 1 | -1/+2 |
| | | |||||
* | | Better handling of odd PLs during room upgrades | Richard van der Hoff | 2018-10-27 | 1 | -44/+81 |
|/ | | | | | | | Fixes handling of rooms where we have permission to send the tombstone, but not other state. We need to (a) fail more gracefully when we can't send the PLs in the old room, and (b) not set the PLs in the new room until we are done with the other stuff. | ||||
* | optimise state copying | Richard van der Hoff | 2018-10-26 | 1 | -7/+5 |
| | |||||
* | Address review comments | Richard van der Hoff | 2018-10-26 | 1 | -7/+9 |
| | | | | Improve comments, get old room state from the context we already have | ||||
* | restrict PLs in old room | Richard van der Hoff | 2018-10-25 | 1 | -1/+43 |
| | |||||
* | copy state | Richard van der Hoff | 2018-10-25 | 1 | -11/+26 |
| | |||||
* | preserve PLs | Richard van der Hoff | 2018-10-25 | 1 | -1/+7 |
| | |||||
* | preserve room visibility | Richard van der Hoff | 2018-10-25 | 1 | -3/+5 |
| | |||||
* | Basic initial support for room upgrades | Richard van der Hoff | 2018-10-25 | 1 | -0/+121 |
| | | | | | Currently just creates a new, empty, room, and sends a tombstone in the old room. | ||||
* | Allow power_level_content_override=None for _send_events_for_new_room | Richard van der Hoff | 2018-10-25 | 1 | -5/+6 |
| | |||||
* | Make room_member_handler a member of RoomCreationHandler | Richard van der Hoff | 2018-10-25 | 1 | -6/+3 |
| | | | | ... to save passing it into `_send_events_for_new_room` | ||||
* | Factor _generate_room_id out of create_room | Richard van der Hoff | 2018-10-25 | 1 | -22/+23 |
| | | | | we're going to need this for room upgrades. | ||||
* | Refactor state group lookup to reduce DB hits (#4011) | Erik Johnston | 2018-10-25 | 1 | -10/+12 |
| | | | | | | | | Currently when fetching state groups from the data store we make two hits two the database: once for members and once for non-members (unless request is filtered to one or the other). This adds needless load to the datbase, so this PR refactors the lookup to make only a single database hit. | ||||
* | Clean up room alias creation | Erik Johnston | 2018-10-19 | 1 | -2/+3 |
| | |||||
* | block event creation and room creation on hitting resource limits | Neil Johnson | 2018-08-16 | 1 | -0/+4 |
| | |||||
* | Don't expose default_room_version as config opt | Richard van der Hoff | 2018-08-07 | 1 | -1/+2 |
| | |||||
* | Basic support for room versioning | Richard van der Hoff | 2018-08-03 | 1 | -1/+26 |
| | | | | | | | | This is the first tranche of support for room versioning. It includes: * setting the default room version in the config file * new room_version param on the createRoom API * storing the version of newly-created rooms in the m.room.create event * fishing the version of existing rooms out of the m.room.create event | ||||
* | make /context lazyload & filter aware (#3567) | Matthew Hodgson | 2018-07-27 | 1 | -3/+21 |
| | | | make /context lazyload & filter aware. | ||||
* | Replace usage of get_current_toke with StreamToken.START | Erik Johnston | 2018-07-24 | 1 | -5/+7 |
| | | | | | | | | This allows us to handle /context/ requests on the client_reader worker without having to pull in all the various stream handlers (e.g. precence, typing, pushers etc). The only thing the token gets used for is pagination, and that ignores everything but the room portion of the token. | ||||
* | Move RoomContextHandler out of Handlers | Erik Johnston | 2018-07-18 | 1 | -1/+5 |
| | | | | This is in preparation for moving GET /context/ to a worker | ||||
* | run isort | Amber Brown | 2018-07-09 | 1 | -11/+8 |
| | |||||
* | Add error code to room creation error | Michael Wagner | 2018-06-14 | 1 | -2/+6 |
| | | | | This error code is mentioned in the documentation at https://matrix.org/docs/api/client-server/#!/Room32creation/createRoom | ||||
* | Consistently use six's iteritems and wrap lazy keys/values in list() if ↵ | Amber Brown | 2018-05-31 | 1 | -1/+1 |
| | | | | they're not meant to be lazy (#3307) | ||||
* | Reject attempts to send event before privacy consent is given | Richard van der Hoff | 2018-05-22 | 1 | -0/+4 |
| | | | | | | Returns an M_CONSENT_NOT_GIVEN error (cf https://github.com/matrix-org/matrix-doc/issues/1252) if consent is not yet given. | ||||
* | Infrastructure for a server notices room | Richard van der Hoff | 2018-05-17 | 1 | -2/+14 |
| | | | | | | | 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) | ||||
* | Move RoomCreationHandler out of synapse.handlers.Handlers | Richard van der Hoff | 2018-05-17 | 1 | -2/+6 |
| | | | | | | | Handlers is deprecated nowadays, so let's move this out before I add a new dependency on it. Also fix the docstrings on create_room. | ||||
* | Remove ability for AS users to call /events and /sync | Erik Johnston | 2018-03-05 | 1 | -6/+3 |
| | | | | | | | This functionality has been deprecated for a while as well as being broken for a while. Instead of fixing it lets just remove it entirely. See: https://github.com/matrix-org/matrix-doc/issues/1144 | ||||
* | Move RoomMemberHandler out of Handlers | Erik Johnston | 2018-03-01 | 1 | -2/+2 |
| | |||||
* | Update copyright | Erik Johnston | 2018-02-06 | 1 | -0/+1 |
| | |||||
* | Update places where we create events | Erik Johnston | 2018-02-05 | 1 | -6/+4 |
| | |||||
* | PEP8 | Erik Johnston | 2017-11-28 | 1 | -1/+1 |
| | |||||
* | Fix wrong avatars when inviting multiple users when creating room | Erik Johnston | 2017-11-28 | 1 | -5/+5 |
| | | | We reused the `content` dictionary between invite requests, which meant they could end up reusing the profile info for a previous user | ||||
* | replace 'except:' with 'except Exception:' | Richard van der Hoff | 2017-10-23 | 1 | -1/+1 |
| | | | | what could possibly go wrong | ||||
* | Remove pointless create() method | Richard van der Hoff | 2017-10-20 | 1 | -2/+2 |
| | | | | | It just calls the constructor, so we may as well kill it rather than having random codepaths. | ||||
* | un-double indent | David Baker | 2017-10-04 | 1 | -1/+1 |
| | |||||
* | Add room creation checks to spam checker | David Baker | 2017-10-04 | 1 | -0/+8 |
| | | | | | Lets the spam checker deny attempts to create rooms and add aliases to them. | ||||
* | Change to create new room and join other users | Erik Johnston | 2017-06-19 | 1 | -4/+17 |
| | |||||
* | Add per user ratelimiting overrides | Erik Johnston | 2017-05-10 | 1 | -1/+1 |
| | |||||
* | Remove unused param | Erik Johnston | 2017-02-20 | 1 | -1/+1 |
| | |||||
* | Fix /context/ visibiltiy rules | Erik Johnston | 2017-02-20 | 1 | -1/+4 |
| | |||||
* | Make presence.get_new_events a bit faster | Erik Johnston | 2017-02-02 | 1 | -0/+1 |
| | | | | We do this by caching the set of users a user shares rooms with. | ||||
* | Merge pull request #653 from matrix-org/erikj/preset_guest_join | Erik Johnston | 2016-12-05 | 1 | -0/+10 |
|\ | | | | | Enable guest access for private rooms by default | ||||
| * | Enable guest access for private rooms by default | Erik Johnston | 2016-03-17 | 1 | -0/+10 |
| | | |||||
* | | Fix incredubly slow back pagination query | Erik Johnston | 2016-10-24 | 1 | -2/+5 |
| | | | | | | | | | | | | | | If a client didn't specify a from token when paginating backwards synapse would attempt to query the (global) maximum topological token. This a) doesn't make much sense since they're room specific and b) there are no indices that lets postgres do this efficiently. | ||||
* | | storage/appservice: make appservice methods only relying on the cache ↵ | Patrik Oldsberg | 2016-10-06 | 1 | -1/+1 |
| | | | | | | | | synchronous | ||||
* | | Move RoomListHandler into a separate file | Erik Johnston | 2016-09-14 | 1 | -158/+1 |
| | | |||||
* | | Add is_direct param to /createRoom | Erik Johnston | 2016-09-12 | 1 | -0/+6 |
| | | |||||
* | | Add server param to /publicRooms | Erik Johnston | 2016-09-08 | 1 | -0/+10 |
| | | |||||
* | | Cache federation state responses | Erik Johnston | 2016-07-21 | 1 | -2/+2 |
| | | |||||
* | | Pull full state for each room all at once | Erik Johnston | 2016-06-08 | 1 | -16/+16 |
| | | |||||
* | | Fix room list spidering | David Baker | 2016-06-01 | 1 | -1/+1 |
| | | |||||
* | | Add cache to remote room lists | David Baker | 2016-05-31 | 1 | -4/+30 |
| | | | | | | | | Poll for updates from remote servers, waiting for the poll if there's no cache entry. | ||||
* | | Basic, un-cached support for secondary_directory_servers | David Baker | 2016-05-31 | 1 | -1/+32 |
| | | |||||
* | | move filter_events_for_client out of base handler | Mark Haines | 2016-05-11 | 1 | -2/+5 |
| | | |||||
* | | Run filter_events_for_client | David Baker | 2016-04-27 | 1 | -1/+1 |
| | | | | | | | | so we don't accidentally mail out events people shouldn't see | ||||
* | | Don't return empty public rooms | Erik Johnston | 2016-04-12 | 1 | -5/+8 |
| | | |||||
* | | Move all the wrapper functions for distributor.fire | Mark Haines | 2016-04-08 | 1 | -15/+0 |
| | | | | | | | | | | | | | | 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. | ||||
* | | Add concurrently_execute function | Erik Johnston | 2016-04-01 | 1 | -10/+7 |
| | | |||||
* | | Split out RoomMemberHandler | Erik Johnston | 2016-03-31 | 1 | -602/+3 |
| | | |||||
* | | Line length | Erik Johnston | 2016-03-31 | 1 | -1/+3 |
| | | |||||
* | | Only forget room if you were in the room | Erik Johnston | 2016-03-30 | 1 | -1/+2 |
| | | |||||
* | | Require user to have left room to forget room | Erik Johnston | 2016-03-30 | 1 | -6/+16 |
| | | | | | | | | | | This dramatically simplifies the forget API code - in particular it no longer generates a leave event. | ||||
* | | Add a response cache for getting the public room list | Mark Haines | 2016-03-24 | 1 | -1/+11 |
| | | |||||
* | | Ensure all old public rooms have aliases | Erik Johnston | 2016-03-23 | 1 | -4/+5 |
| | | |||||
* | | Ensure published rooms have public join rules | Erik Johnston | 2016-03-23 | 1 | -0/+7 |
| | | |||||
* | | Comment | Erik Johnston | 2016-03-23 | 1 | -0/+3 |
| | | |||||
* | | Don't require alias in public room list. | Erik Johnston | 2016-03-23 | 1 | -14/+13 |
|/ | | | | | | | Rooms now no longer require an alias to be published. Also, changes the way we pull out state of each room to not require fetching all state events. | ||||
* | Add config to create guest account on 3pid invite | Erik Johnston | 2016-03-14 | 1 | -25/+32 |
| | | | | | | | | | | | | | Currently, when a 3pid invite request is sent to an identity server, it includes a provisioned guest access token. This allows the link in the, say, invite email to include the guest access token ensuring that the same account is used each time the link is clicked. This flow has a number of flaws, including when using different servers or servers that have guest access disabled. For now, we keep this implementation but hide it behind a config option until a better flow is implemented. | ||||
* | Send the user ID matching the guest access token, since there is no Matrix ↵ | David Baker | 2016-03-07 | 1 | -0/+5 |
| | | | | API to discover what user ID an access token is for. | ||||
* | Merge pull request #623 from matrix-org/rav/fix_createroom_race | Richard van der Hoff | 2016-03-04 | 1 | -1/+1 |
|\ | | | | | Make sure we add all invited members before returning from createRoom | ||||
| * | Make sure we add all invited members before returning from createRoom | Richard van der Hoff | 2016-03-04 | 1 | -1/+1 |
| | | | | | | | | add a missing yield. | ||||
* | | Merge remote-tracking branch 'origin/develop' into rav/SYN-642 | Richard van der Hoff | 2016-03-03 | 1 | -31/+45 |
|\| | |||||
| * | Pass whole requester to ratelimiting | Daniel Wagner-Hall | 2016-03-03 | 1 | -31/+45 |
| | | | | | | | | This will enable more detailed decisions | ||||
* | | Fix typo | Richard van der Hoff | 2016-03-03 | 1 | -1/+1 |
| | | |||||
* | | Move arg default to the start of the function | Richard van der Hoff | 2016-03-02 | 1 | -2/+3 |
| | | | | | | | | Also don't overwrite the list that gets passed in. | ||||
* | | Address review comments | Richard van der Hoff | 2016-03-02 | 1 | -2/+3 |
| | | |||||
* | | Handle rejections of invites from local users locally | Richard van der Hoff | 2016-03-01 | 1 | -5/+18 |
|/ | | | | | Slightly hacky fix to SYN-642, which avoids the federation codepath when trying to reject invites from local users. | ||||
* | Generate guest access token on 3pid invites | Daniel Wagner-Hall | 2016-02-24 | 1 | -0/+8 |
| | | | | | | | | | This means that following the same link across multiple sessions or devices can re-use the same guest account. Note that this is somewhat of an abuse vector; we can't throw up captchas on this flow, so this is a way of registering ephemeral accounts for spam, whose sign-up we don't rate limit. | ||||
* | Allow third_party_signed to be specified on /join | Daniel Wagner-Hall | 2016-02-23 | 1 | -8/+59 |
| | |||||
* | Review comments | Daniel Wagner-Hall | 2016-02-18 | 1 | -5/+4 |
| | |||||
* | Some cleanup | Daniel Wagner-Hall | 2016-02-17 | 1 | -66/+58 |
| | | | | | I'm not particularly happy with the "action" switching, but there's no convenient way to defer the work that needs to happen after it, so... :( | ||||
* | Respond to federated invite with non-empty context | Daniel Wagner-Hall | 2016-02-17 | 1 | -40/+12 |
| | | | | | | | Currently, we magically perform an extra database hit to find the inviter, and use this to guess where we should send the event. Instead, fill in a valid context, so that other callers relying on the context actually have one. | ||||
* | Some cleanup, some TODOs, more to do | Daniel Wagner-Hall | 2016-02-16 | 1 | -68/+60 |
| | |||||
* | Some cleanup | Daniel Wagner-Hall | 2016-02-16 | 1 | -19/+20 |
| | |||||
* | Tidy? up room creation event sending | Daniel Wagner-Hall | 2016-02-16 | 1 | -63/+72 |
| | |||||
* | Merge branch 'develop' into daniel/roomcleanupincremental | Daniel Wagner-Hall | 2016-02-16 | 1 | -3/+3 |
|\ | | | | | | | | | Conflicts: synapse/handlers/room.py | ||||
| * | Simplify room creation code | Daniel Wagner-Hall | 2016-02-15 | 1 | -40/+28 |
| | | |||||
* | | Branch off member and non member sends | Daniel Wagner-Hall | 2016-02-15 | 1 | -34/+46 |
| | | | | | | | | Unclean, needs tidy-up, but works | ||||
* | | Simplify room creation code | Daniel Wagner-Hall | 2016-02-15 | 1 | -37/+25 |
| | | |||||
* | | Use update_membership for profile updates | Daniel Wagner-Hall | 2016-02-15 | 1 | -4/+0 |
| | | |||||
* | | Use update_membership to kick guests | Daniel Wagner-Hall | 2016-02-15 | 1 | -2/+9 |
| | | |||||
* | | Reuse update_membership from /join | Daniel Wagner-Hall | 2016-02-15 | 1 | -3/+9 |
| | | |||||
* | | Inline _do_local_membership_update | Daniel Wagner-Hall | 2016-02-15 | 1 | -18/+7 |
| | | |||||
* | | Inline _do_join as it now only has one caller | Daniel Wagner-Hall | 2016-02-15 | 1 | -48/+47 |
| | | | | | | | | | | | | Also, consistently apply rate limiting. Again, ugly, but a step in the right direction. | ||||
* | | Merge implementation of /join by alias or ID | Daniel Wagner-Hall | 2016-02-15 | 1 | -25/+15 |
| | | | | | | | | | | This code is kind of rough (passing the remote servers down a long chain), but is a step towards improvement. | ||||
* | | Merge some room joining codepaths | Daniel Wagner-Hall | 2016-02-15 | 1 | -4/+10 |
|/ | | | | | | Force joining by alias to go through the send_membership_event checks, rather than bypassing them straight into _do_join. This is the first of many stages of cleanup. | ||||
* | Revert "Merge two of the room join codepaths" | Daniel Wagner-Hall | 2016-02-12 | 1 | -35/+9 |
| | | | | | | This reverts commit cf81375b94c4763766440471e632fc4b103450ab. It subtly violates a guest joining auth check | ||||
* | Merge two of the room join codepaths | Daniel Wagner-Hall | 2016-02-12 | 1 | -9/+35 |
| | | | | | | | | | | | | | There's at least one more to merge in. Side-effects: * Stop reporting None as displayname and avatar_url in some cases * Joining a room by alias populates guest-ness in join event * Remove unspec'd PUT version of /join/<room_id_or_alias> which has not been called on matrix.org according to logs * Stop recording access_token_id on /join/room_id - currently we don't record it on /join/room_alias; I can try to thread it through at some point. | ||||
* | Return events in correct order for /events | Erik Johnston | 2016-02-11 | 1 | -0/+1 |
| | |||||
* | Fix up logcontexts | Erik Johnston | 2016-02-08 | 1 | -2/+9 |
| | |||||
* | PEP8 | Erik Johnston | 2016-02-03 | 1 | -1/+1 |
| | |||||
* | Remove unused method | Erik Johnston | 2016-02-03 | 1 | -8/+0 |
| | |||||
* | Merge branch 'develop' of github.com:matrix-org/synapse into ↵ | Erik Johnston | 2016-02-03 | 1 | -3/+8 |
|\ | | | | | | | erikj/public_room_fix | ||||
| * | Fix flake8 warnings for new flake8 | Daniel Wagner-Hall | 2016-02-02 | 1 | -1/+1 |
| | | |||||
| * | s/get_room_changes_for_user/get_membership_changes_for_user/ | Erik Johnston | 2016-02-02 | 1 | -1/+1 |
| | | |||||
| * | WARN if we get a topo token instead of stream. | Erik Johnston | 2016-02-02 | 1 | -1/+6 |
| | | |||||
* | | Change the way we do public room list fetching | Erik Johnston | 2016-02-02 | 1 | -23/+63 |
|/ | |||||
* | Order things correctly | Erik Johnston | 2016-02-01 | 1 | -1/+1 |
| | |||||
* | Switch over /events to use per room caches | Erik Johnston | 2016-02-01 | 1 | -5/+20 |
| | |||||
* | Allow non-guests to peek on rooms using /events | Daniel Wagner-Hall | 2016-01-20 | 1 | -1/+1 |
| | |||||
* | Require unbanning before other membership changes | Daniel Wagner-Hall | 2016-01-15 | 1 | -2/+53 |
| | |||||
* | Remove unused parameters | Daniel Wagner-Hall | 2016-01-15 | 1 | -11/+5 |
| | |||||
* | Merge branch 'release-v0.12.1' into develop | Richard van der Hoff | 2016-01-14 | 1 | -12/+23 |
|\ | |||||
| * | Add 'event' result to 'context' endpoint | Richard van der Hoff | 2016-01-13 | 1 | -12/+23 |
| | | | | | | | | ... because the context isn't much use without the event. | ||||
| * | Skip, rather than erroring, invalid guest requests | Daniel Wagner-Hall | 2016-01-13 | 1 | -2/+0 |
| | | | | | | | | | | | | | | | | | | | | Erroring causes problems when people make illegal requests, because they don't know what limit parameter they should pass. This is definitely buggy. It leaks message counts for rooms people don't have permission to see, via tokens. But apparently we already consciously decided to allow that as a team, so this preserves that behaviour. | ||||
* | | Skip, rather than erroring, invalid guest requests | Daniel Wagner-Hall | 2016-01-05 | 1 | -2/+0 |
| | | | | | | | | | | | | | | | | | | | | Erroring causes problems when people make illegal requests, because they don't know what limit parameter they should pass. This is definitely buggy. It leaks message counts for rooms people don't have permission to see, via tokens. But apparently we already consciously decided to allow that as a team, so this preserves that behaviour. | ||||
* | | Allow guests to upgrade their accounts | Daniel Wagner-Hall | 2016-01-05 | 1 | -1/+1 |
| | | |||||
* | | Use named args | Erik Johnston | 2016-01-05 | 1 | -2/+2 |
| | | |||||
* | | Support inviting 3pids in /createRoom | Erik Johnston | 2016-01-05 | 1 | -0/+16 |
|/ | |||||
* | Return room avatar URLs in /publicRooms | Daniel Wagner-Hall | 2015-12-21 | 1 | -2/+21 |
| | | | | | Spec: https://github.com/matrix-org/matrix-doc/pull/244 Tests: https://github.com/matrix-org/sytest/pull/121 | ||||
* | Give the IS a bunch more 3pid invite context | Daniel Wagner-Hall | 2015-12-16 | 1 | -7/+60 |
| | | | | This allows it to form richer emails | ||||
* | Add caches for whether a room has been forgotten by a user | Mark Haines | 2015-12-10 | 1 | -1/+1 |
| | |||||
* | Add comments | Mark Haines | 2015-12-02 | 1 | -0/+3 |
| | |||||
* | Merge branch 'develop' into markjh/edu_frequency | Mark Haines | 2015-12-02 | 1 | -9/+15 |
|\ | | | | | | | | | | | Conflicts: synapse/handlers/federation.py synapse/handlers/room.py | ||||
| * | Wrap calls to distributor.fire in appropriately named functions so that ↵ | Mark Haines | 2015-12-01 | 1 | -9/+15 |
| | | | | | | | | static analysis can work out want is calling what | ||||
* | | Only fire user_joined_room on the distributor if the user has actually ↵ | Mark Haines | 2015-12-01 | 1 | -4/+6 |
|/ | | | | joined the room | ||||
* | Allow users to forget rooms | Daniel Wagner-Hall | 2015-11-17 | 1 | -0/+3 |
| | |||||
* | Fix missing profile data in federation joins | Erik Johnston | 2015-11-12 | 1 | -1/+2 |
| | | | | | There was a regression where we stopped including profile data in initial joins for rooms joined over federation. | ||||
* | Allow guests to access room context API | Daniel Wagner-Hall | 2015-11-11 | 1 | -3/+9 |
| | |||||
* | Allow guest users to join and message rooms | Daniel Wagner-Hall | 2015-11-10 | 1 | -1/+15 |
| | |||||
* | Get display name from identity server, not client | Daniel Wagner-Hall | 2015-11-09 | 1 | -5/+3 |
| | |||||
* | Exchange 3pid invites for m.room.member invites | Daniel Wagner-Hall | 2015-11-05 | 1 | -8/+11 |
| | |||||
* | Open up /events to anonymous users for room events only | Daniel Wagner-Hall | 2015-11-05 | 1 | -1/+10 |
| | | | | Squash-merge of PR #345 from daniel/anonymousevents | ||||
* | Remove more unused parameters | Daniel Wagner-Hall | 2015-11-02 | 1 | -1/+0 |
| | |||||
* | Docs | Erik Johnston | 2015-10-28 | 1 | -0/+13 |
| | |||||
* | Add room context api | Erik Johnston | 2015-10-28 | 1 | -0/+42 |
| | |||||
* | Allow rejecting invites | Daniel Wagner-Hall | 2015-10-20 | 1 | -41/+61 |
| | | | | | This is done by using the same /leave flow as you would use if you had already accepted the invite and wanted to leave. | ||||
* | Verify third party ID server certificates | Daniel Wagner-Hall | 2015-10-16 | 1 | -2/+29 |
| | |||||
* | Use non-placeholder name for endpoint | Daniel Wagner-Hall | 2015-10-15 | 1 | -1/+1 |
| | |||||
* | Look for keys on the right objects | Daniel Wagner-Hall | 2015-10-15 | 1 | -2/+2 |
| | |||||
* | Move logic into handler | Daniel Wagner-Hall | 2015-10-13 | 1 | -0/+132 |
| | |||||
* | Move event contents into third_party_layout field | Daniel Wagner-Hall | 2015-10-13 | 1 | -4/+7 |
| | |||||
* | Merge branch 'develop' into daniel/3pidinvites | Daniel Wagner-Hall | 2015-10-05 | 1 | -2/+21 |
|\ |