summary refs log tree commit diff
path: root/synapse/handlers/events.py (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Include user membership on events (#17282)Richard van der Hoff2024-06-131-2/+0
| | | | | MSC4115 has now completed FCP, so we can enable it by default and switch to the stable identifier.
* Add support for MSC4115 (#17104)Richard van der Hoff2024-04-291-1/+6
| | | | Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
* Correctly mention previous copyright (#16820)Erik Johnston2024-01-231-0/+1
| | | | | During the migration the automated script to update the copyright headers accidentally got rid of some of the existing copyright lines. Reinstate them.
* Update license headersPatrick Cloke2023-11-211-10/+16
|
* Add new module API for adding custom fields to events `unsigned` section ↵Erik Johnston2023-10-271-1/+1
| | | | (#16549)
* Pass the device ID around in the presence handler (#16171)Patrick Cloke2023-08-281-0/+1
| | | | | | Refactoring to pass the device ID (in addition to the user ID) through the presence handler (specifically the `user_syncing`, `set_state`, and `bump_presence_active_time` methods and their replication versions).
* Make `EventHandler.get_event` return `None` when the requested event is not ↵Andrew Morgan2023-03-211-4/+5
| | | | found (#15298)
* Pass the requester during event serialization. (#15174)Quentin Gliech2023-03-061-10/+10
| | | | This allows Synapse to properly include the transaction ID in the unsigned data of events.
* Directly lookup local membership instead of getting all members in a room ↵Eric Eastwood2022-08-241-3/+6
| | | | | first (`get_users_in_room` mis-use) (#13608) See https://github.com/matrix-org/synapse/pull/13575#discussion_r953023755
* Rename storage classes (#12913)Erik Johnston2022-05-311-2/+2
|
* Additional constants for EDU types. (#12884)Patrick Cloke2022-05-271-1/+1
| | | Instead of hard-coding strings in many places.
* remove constantly lib use and switch to enums. (#12624)andrew do2022-05-041-1/+1
|
* Implement MSC2815: allow room moderators to view redacted event content (#12427)Tulir Asokan2022-04-201-2/+13
| | | | | | Implements matrix-org/matrix-spec-proposals#2815 Signed-off-by: Tulir Asokan <tulir@maunium.net>
* Prevent a sync request from removing a user's busy presence status (#12213)David Baker2022-04-131-2/+4
| | | | | | | | | | In trying to use the MSC3026 busy presence status, the user's status would be set back to 'online' next time they synced. This change makes it so that syncing does not affect a user's presence status if it is currently set to 'busy': it must be removed through the presence API. The MSC defers to implementations on the behaviour of busy presence, so this ought to remain compatible with the MSC.
* Use the proper serialization format when bundling aggregations. (#12090)Patrick Cloke2022-03-031-1/+2
| | | | This ensures that the `latest_event` field of the bundled aggregation for threads uses the same format as the other events in the response.
* Remove `HomeServer.get_datastore()` (#12031)Richard van der Hoff2022-02-231-2/+2
| | | | | | | The presence of this method was confusing, and mostly present for backwards compatibility. Let's get rid of it. Part of #11733
* Remove `log_function` and its uses (#11761)Richard van der Hoff2022-01-181-2/+0
| | | | | | | I've never found this terribly useful. I think it was added in the early days of Synapse, without much thought as to what would actually be useful to log, and has just been cargo-culted ever since. Rather, it tends to clutter up debug logs with useless information.
* Bundle aggregations outside of the serialization method. (#11612)Patrick Cloke2022-01-071-1/+1
| | | | | | | | This makes the serialization of events synchronous (and it no longer access the database), but we must manually calculate and provide the bundled aggregations. Overall this should cause no change in behavior, but is prep work for other improvements.
* Do not bundle aggregations for APIs which shouldn't include them. (#11592)Patrick Cloke2021-12-201-2/+0
| | | | | And make bundling aggregations opt-in, instead of opt-out to avoid having APIs to include extraneous data (and being much heavier than necessary).
* Convert EventStreamResult to attrs. (#11574)Patrick Cloke2021-12-151-3/+4
|
* Include bundled aggregations in /sync and related fixes (#11478)Patrick Cloke2021-12-061-3/+2
| | | | | | | | Due to updates to MSC2675 this includes a few fixes: * Include bundled aggregations for /sync. * Do not include bundled aggregations for /initialSync and /events. * Do not bundle aggregations for state events. * Clarifies comments and variable names.
* Refactor the code to inject bundled relations during serialization. (#11408)Patrick Cloke2021-11-231-1/+1
|
* Remove the deprecated BaseHandler. (#11005)Patrick Cloke2021-10-081-7/+5
| | | | | | | | The shared ratelimit function was replaced with a dedicated RequestRatelimiter class (accessible from the HomeServer object). Other properties were copied to each sub-class that inherited from BaseHandler.
* Use inline type hints in `handlers/` and `rest/`. (#10382)Jonathan de Jong2021-07-161-3/+3
|
* Use get_current_users_in_room from store and not StateHandler (#9910)Erik Johnston2021-05-051-1/+1
|
* Remove redundant "coding: utf-8" lines (#9786)Jonathan de Jong2021-04-141-1/+0
| | | | | | | Part of #9744 Removes all redundant `# -*- coding: utf-8 -*-` lines from files, as python 3 automatically reads source code as utf-8 now. `Signed-off-by: Jonathan de Jong <jonathan@automatia.nl>`
* Ratelimit cross-user key sharing requests. (#8957)Patrick Cloke2021-02-191-2/+2
|
* Update black, and run auto formatting over the codebase (#9381)Eric Eastwood2021-02-161-2/+1
| | | | | | | - Update black version to the latest - Run black auto formatting over the codebase - Run autoformatting according to [`docs/code_style.md `](https://github.com/matrix-org/synapse/blob/80d6dc9783aa80886a133756028984dbf8920168/docs/code_style.md) - Update `code_style.md` docs around installing black to use the correct version
* Make token serializing/deserializing async (#8427)Erik Johnston2020-09-301-2/+2
| | | 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).
* Simplify super() calls to Python 3 syntax. (#8344)Patrick Cloke2020-09-181-2/+2
| | | | | | | This converts calls like super(Foo, self) -> super(). Generated with: sed -i "" -Ee 's/super\([^\(]+\)/super()/g' **/*.py
* Remove some unused distributor signals (#8216)Patrick Cloke2020-09-091-4/+0
| | | | | Removes the `user_joined_room` and stops calling it since there are no observers. Also cleans-up some other unused signals and related code.
* Add type hints to more handlers (#8244)Erik Johnston2020-09-031-23/+26
|
* Add typing info to Notifier (#8058)Erik Johnston2020-08-111-4/+0
|
* Stop the master relaying USER_SYNC for other workers (#7318)Richard van der Hoff2020-04-221-8/+12
| | | | | | | Long story short: if we're handling presence on the current worker, we shouldn't be sending USER_SYNC commands over replication. In an attempt to figure out what is going on here, I ended up refactoring some bits of the presencehandler code, so the first 4 commits here are non-functional refactors to move this code slightly closer to sanity. (There's still plenty to do here :/). Suggest reviewing individual commits. Fixes (I hope) #7257.
* Port SyncHandler to async/awaitErik Johnston2019-12-051-17/+13
|
* Port to use state storageErik Johnston2019-10-301-1/+5
|
* Remove double return statements (#5962)Andrew Morgan2019-09-031-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.
* Replace returnValue with return (#5736)Amber Brown2019-07-231-3/+3
|
* Move logging utilities out of the side drawer of util/ and into logging/ (#5606)Amber Brown2019-07-041-1/+1
|
* Run Black. (#5482)Amber Brown2019-06-201-23/+26
|
* Don't bundle events in /sync or /eventsErik Johnston2019-05-211-0/+3
| | | | | As we'll send down the annotations too anyway, so this just ends up confusing clients.
* Allow client event serialization to be asyncErik Johnston2019-05-141-4/+4
|
* Fix grammar and document get_current_users_in_room (#4998)Andrew Morgan2019-04-031-1/+1
|
* Deny peeking into rooms that have been blockedErik Johnston2019-03-211-1/+6
|
* Check room visibility for /event/ requestsRichard van der Hoff2018-08-021-4/+21
| | | | | | | | Make sure that the user has permission to view the requeseted event for /event/{eventId} and /room/{roomId}/event/{eventId} requests. Also check that the event is in the given room for /room/{roomId}/event/{eventId}, for sanity.
* run isortAmber Brown2018-07-091-8/+7
|
* Stub out ServerNoticesSender on the workersRichard van der Hoff2018-05-221-0/+5
| | | | | ... and have the sync endpoints call it directly rather than obsure indirection via PresenceHandler
* Use state handler instead of get_users_in_room/get_joined_hostsErik Johnston2016-08-261-1/+2
|
* Move the presence handler out of the Handlers objectMark Haines2016-05-161-1/+1
|
* Remove dead code left over from presence changesMark Haines2016-03-171-70/+0
|
* Initial cutErik Johnston2016-02-171-8/+35
|
* Fix up logcontextsErik Johnston2016-02-081-2/+9
|
* Fix flake8 warnings for new flake8Daniel Wagner-Hall2016-02-021-1/+1
|
* Only fetch events for rooms and receiptsErik Johnston2016-01-211-3/+3
|
* Allow non-guests to peek on rooms using /eventsDaniel Wagner-Hall2016-01-201-1/+1
|
* Dont fire user_joined_room when guest hits /eventsErik Johnston2016-01-121-7/+0
| | | | | | | | | | Firing the 'user_joined_room' signal everytime a guest hits /events causes all presence for that room to be returned in the stream. This may sound helpful, but causes clients to tightloop calling /events. In general, guest users should get the initial presence from (room) intial sync and so we don't require presence to sbsequently come down the event stream.
* copyrightsMatthew Hodgson2016-01-071-1/+1
|
* Fix a race between started/stopped streamMark Haines2015-12-141-3/+8
|
* Wrap calls to distributor.fire in appropriately named functions so that ↵Mark Haines2015-12-011-5/+15
| | | | static analysis can work out want is calling what
* Open up /events to anonymous users for room events onlyDaniel Wagner-Hall2015-11-051-2/+8
| | | | Squash-merge of PR #345 from daniel/anonymousevents
* Remove unused arguments and codeDaniel Wagner-Hall2015-11-021-12/+1
|
* Split the sections of EventStreamHandler.get_stream that handle presenceMark Haines2015-10-091-35/+52
| | | | | | | into separate functions. This makes the code a bit easier to read, and means that we can reuse the logic when implementing the v2 sync API.
* Don't make pushers handle presence/typing eventsErik Johnston2015-08-241-2/+8
|
* Don't get apservice interested rooms in RoomHandler.get_joined_rooms_for_usersErik Johnston2015-08-191-1/+9
|
* Change the way we do logging contexts so that they survive divergencesErik Johnston2015-05-081-5/+3
|
* Change room handlers get_rooms_for_user to get_joined_rooms_for_user. This ↵Erik Johnston2015-03-091-1/+1
| | | | uses the a storage api that is cached.
* Add some randomness to the user specified timeout on event streams to ↵Erik Johnston2015-03-061-0/+9
| | | | mitigate against thundering herds problems
* Add stub functions and work out execution flow to implement AS event stream ↵Kegan Dougal2015-02-251-3/+0
| | | | polling.
* Merge branch 'develop' into pushersDavid Baker2015-01-281-2/+6
|\ | | | | | | | | | | Conflicts: synapse/handlers/events.py synapse/server.py
| * Pass the current time to serialize event, rather than passing anMark Haines2015-01-261-1/+4
| | | | | | | | | | | | HS and getting a clock from it and calling time_msec on the clock. Remove the serialize_event method from the HS since it is no longer needed.
| * Replace hs.parse_userid with UserID.from_stringMark Haines2015-01-231-1/+2
| |
* | Oops, remove debuggingDavid Baker2015-01-271-1/+0
| |
* | or of course we could just return the deferredDavid Baker2015-01-271-2/+1
| |
* | Need a defer.inlineCallbacks here as we yield in it: otherwise nothing in ↵David Baker2015-01-271-0/+1
| | | | | | | | the cb gets executed.
* | Unbreak bad presence merge - don't add these blocks together with an and: ↵David Baker2015-01-271-12/+14
| | | | | | | | they're different things.
* | Merge branch 'develop' into pushersDavid Baker2015-01-221-2/+0
|\| | | | | | | | | Conflicts: synapse/rest/__init__.py
| * Remove temporary debug logging that was accidentally committedMark Haines2015-01-161-2/+0
| |
* | Don't make the pushers' event streams cause people to appear onlineDavid Baker2015-01-151-21/+22
|/
* Return the raw federation event rather than adding extra keys for federation ↵Kegan Dougal2015-01-081-2/+2
| | | | data.
* Add 'raw' query parameter to expose the event graph and signatures to savvy ↵Kegan Dougal2015-01-081-2/+5
| | | | clients.
* Update copyright noticesMark Haines2015-01-061-1/+1
|
* Attempt to fix bug where we 500d an event stream due to trying to cancel a ↵Erik Johnston2014-11-261-3/+9
| | | | timer twice
* Add a few missing yields, Move deferred lists inside PreserveLoggingContext ↵Mark Haines2014-11-201-2/+4
| | | | because they don't interact well with the logging contexts
* Preserve logging context in a few more places, drop the logging context ↵Mark Haines2014-11-191-3/+5
| | | | after it has been stashed to reduce potential for confusion
* Correctly handle the 'age' key in events and pdusErik Johnston2014-09-151-6/+4
|
* fix the copyright holder from matrix.org to OpenMarket Ltd, as matrix.org ↵Matthew Hodgson2014-09-031-1/+1
| | | | hasn't been incorporated in time for launch.
* Fixed GET /events/$id to be not broken.Kegan Dougal2014-09-031-1/+3
|
* Don't query the rooms members table so much by using the new notifier api ↵Erik Johnston2014-08-281-1/+1
| | | | that allows you to specify room_ids to notify.
* Up timeout to 10 minutesErik Johnston2014-08-281-1/+1
|
* Add more logging. Up the event stream timer to 10sErik Johnston2014-08-281-1/+2
|
* Add logging to try and figure out what is going on with the presence stuffErik Johnston2014-08-281-0/+3
|
* PEP8 tweaks.Erik Johnston2014-08-271-1/+0
|
* Merge branch 'develop' of github.com:matrix-org/synapse into stream_refactorErik Johnston2014-08-271-22/+77
|\ | | | | | | | | | | | | Conflicts: synapse/handlers/events.py synapse/rest/events.py synapse/rest/room.py
| * Added support for GET /events/$eventid with auth checks.Kegan Dougal2014-08-271-0/+26
| |
* | Implement presence event source. Change the way the notifier indexes listenersErik Johnston2014-08-271-1/+6
| |
* | Enable presence again. Fix up api to match old api.Erik Johnston2014-08-261-3/+10
| |
* | WIP: Completely change how event streaming and pagination work. This ↵Erik Johnston2014-08-261-105/+19
|/ | | | reflects the change in the underlying storage model.
* Start chagning the events stream to work with the new DB schemaErik Johnston2014-08-151-6/+2
|
* add in whitespace after copyright statements to improve legibilityMatthew Hodgson2014-08-131-0/+1
|
* Reference Matrix Home Servermatrix.org2014-08-121-0/+149