summary refs log tree commit diff
path: root/tests/rest (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Switch the JSON byte producer from a pull to a push producer. (#8116)Patrick Cloke2020-08-192-13/+7
|
* Add type hints to handlers.message and events.builder (#8067)Erik Johnston2020-08-121-1/+3
|
* Add health check endpoint (#8048)Erik Johnston2020-08-071-0/+34
|
* Revert #7736 (#8039)Brendan Abolivier2020-08-062-175/+2
|
* Convert synapse.api to async/await (#8031)Patrick Cloke2020-08-064-12/+14
|
* Improve performance of the register endpoint (#8009)Patrick Cloke2020-08-061-1/+1
|
* Rename database classes to make some sense (#8033)Erik Johnston2020-08-051-2/+2
|
* Prevent join->join membership transitions changing member count (#7977)Andrew Morgan2020-08-031-1/+23
| | | | | | | | | | | `StatsHandler` handles updates to the `current_state_delta_stream`, and updates room stats such as the amount of state events, joined users, etc. However, it counts every new join membership as a new user entering a room (and that user being in another room), whereas it's possible for a user's membership status to go from join -> join, for instance when they change their per-room profile information. This PR adds a check for join->join membership transitions, and bails out early, as none of the further checks are necessary at that point. Due to this bug, membership stats in many rooms have ended up being wildly larger than their true values. I am not sure if we also want to include a migration step which recalculates these statistics (possibly using the `_populate_stats_process_rooms` bg update). Bug introduced in the initial implementation https://github.com/matrix-org/synapse/pull/4338.
* Convert federation client to async/await. (#7975)Patrick Cloke2020-07-302-4/+4
|
* Re-implement unread counts (#7736)Brendan Abolivier2020-07-292-2/+175
|
* Add an option to disable purge in delete room admin API (#7964)Dirk Klimpel2020-07-281-2/+55
| | | | | | Add option ```purge``` to ```POST /_synapse/admin/v1/rooms/<room_id>/delete``` Fixes: #3761 Signed-off-by: Dirk Klimpel dirk@klimpel.org
* Convert tests/rest/admin/test_room.py to unix file endings (#7953)Andrew Morgan2020-07-271-1447/+1447
| | | | | Converts tests/rest/admin/test_room.py to have unix file endings after they were accidentally changed in #7613. Keeping the same changelog as #7613 as it hasn't gone out in a release yet.
* Support oEmbed for media previews. (#7920)Patrick Cloke2020-07-271-8/+134
| | | Fixes previews of Twitter URLs by using their oEmbed endpoint to grab content.
* Convert more of the media code to async/await (#7873)Patrick Cloke2020-07-241-1/+4
|
* Add admin endpoint to get members in a room. (#7842)Michael Albert2020-07-161-0/+46
|
* Allow accounts to be re-activated from the admin APIs. (#7847)Patrick Cloke2020-07-151-0/+47
|
* Return the proper 403 Forbidden error during errors with JWT logins. (#7844)Patrick Cloke2020-07-151-21/+22
|
* Add delete room admin endpoint (#7613)Dirk Klimpel2020-07-141-0/+395
| | | | | | | | | | | | | | | | | | 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
* Add the option to validate the `iss` and `aud` claims for JWT logins. (#7827)Patrick Cloke2020-07-141-6/+100
|
* Do not use canonicaljson to magically handle decoding bytes from JSON. (#7802)Patrick Cloke2020-07-101-1/+1
|
* Fix some spelling mistakes / typos. (#7811)Patrick Cloke2020-07-093-3/+3
|
* Stop populating unused table `local_invites`. (#7793)Richard van der Hoff2020-07-071-1/+0
| | | | | This table is no longer used, so we may as well stop populating it. Removing it would prevent people rolling back to older releases of Synapse, so that can happen in a future release.
* isort 5 compatibility (#7786)Will Hunt2020-07-051-3/+1
| | | The CI appears to use the latest version of isort, which is a problem when isort gets a major version bump. Rather than try to pin the version, I've done the necessary to make isort5 happy with synapse.
* Fix inconsistent handling of upper and lower cases of email addresses. (#7021)Dirk Klimpel2020-07-031-30/+145
| | | fixes #7016
* add org.matrix.login.jwt so that m.login.jwt can be deprecated (#7675)Sorunome2020-06-241-3/+7
|
* Allow local media to be marked as safe from being quarantined. (#7718)Patrick Cloke2020-06-221-72/+65
|
* Fetch from the r0 media path instead of the unspecced v1. (#7714)Patrick Cloke2020-06-171-1/+1
|
* Replace all remaining six usage with native Python 3 equivalents (#7704)Dagfinn Ilmari Mannsåker2020-06-163-7/+6
|
* Allow new users to be registered via the admin API even if the monthly ↵Dirk Klimpel2020-06-051-15/+163
| | | | active user limit has been reached (#7263)
* Add device management to admin API (#7481)Dirk Klimpel2020-06-051-0/+541
| | | | | | | | | | - Admin is able to - change displaynames - delete devices - list devices - get device informations Fixes #7330
* Add support for webp thumbnailing (#7586)WGH2020-06-051-36/+99
| | | | | Closes #4382 Signed-off-by: Maxim Plotnikov <wgh@torlan.ru>
* Performance improvements and refactor of Ratelimiter (#7595)Andrew Morgan2020-06-055-37/+48
| | | | | | | | | | While working on https://github.com/matrix-org/synapse/issues/5665 I found myself digging into the `Ratelimiter` class and seeing that it was both: * Rather undocumented, and * causing a *lot* of config checks This PR attempts to refactor and comment the `Ratelimiter` class, as well as encourage config file accesses to only be done at instantiation. Best to be reviewed commit-by-commit.
* Fix a bug in automatic user creation with m.login.jwt. (#7585)Olof Johansson2020-06-011-0/+153
|
* Email notifications for new users when creating via the Admin API. (#7267)Dirk Klimpel2020-06-011-0/+75
|
* Convert sending mail to async/await. (#7557)Erik Johnston2020-05-221-2/+2
| | | | Mainly because sometimes the email push code raises exceptions where the stack traces have gotten lost, which is hopefully fixed by this.
* Allow expired accounts to logout (#7443)Andrew Morgan2020-05-142-2/+103
|
* Merge tag 'v1.13.0rc2' into developRichard van der Hoff2020-05-141-45/+10
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Synapse 1.13.0rc2 (2020-05-14) ============================== Bugfixes -------- - Fix a long-standing bug which could cause messages not to be sent over federation, when state events with state keys matching user IDs (such as custom user statuses) were received. ([\#7376](https://github.com/matrix-org/synapse/issues/7376)) - Restore compatibility with non-compliant clients during the user interactive authentication process, fixing a problem introduced in v1.13.0rc1. ([\#7483](https://github.com/matrix-org/synapse/issues/7483)) Internal Changes ---------------- - Fix linting errors in new version of Flake8. ([\#7470](https://github.com/matrix-org/synapse/issues/7470))
| * Do not validate that the client dict is stable during UI Auth. (#7483)Patrick Cloke2020-05-131-45/+10
| | | | | | | | This backs out some of the validation for the client dictionary and logs if this changes during a user interactive authentication session instead.
* | Merge branch 'release-v1.13.0' into developAndrew Morgan2020-05-111-88/+216
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * release-v1.13.0: Don't UPGRADE database rows RST indenting Put rollback instructions in upgrade notes Fix changelog typo Oh yeah, RST Absolute URL it is then Fix upgrade notes link Provide summary of upgrade issues in changelog. Fix ) Move next version notes from changelog to upgrade notes Changelog fixes 1.13.0rc1 Documentation on setting up redis (#7446) Rework UI Auth session validation for registration (#7455) Fix errors from malformed log line (#7454) Drop support for redis.dbid (#7450)
| * Rework UI Auth session validation for registration (#7455)Patrick Cloke2020-05-081-88/+216
| | | | | | | | Be less strict about validation of UI authentication sessions during registration to match client expecations.
* | Add room details admin endpoint (#7317)Manuel Stahl2020-05-071-0/+41
|/
* Persist user interactive authentication sessions (#7302)Patrick Cloke2020-04-301-0/+40
| | | | | By persisting the user interactive authentication sessions to the database, this fixes situations where a user hits different works throughout their auth session and also allows sessions to persist through restarts of Synapse.
* Fix limit logic for EventsStream (#7358)Richard van der Hoff2020-04-291-1/+1
| | | | | | | | | | | | | | | | | | | * Factor out functions for injecting events into database I want to add some more flexibility to the tools for injecting events into the database, and I don't want to clutter up HomeserverTestCase with them, so let's factor them out to a new file. * Rework TestReplicationDataHandler This wasn't very easy to work with: the mock wrapping was largely superfluous, and it's useful to be able to inspect the received rows, and clear out the received list. * Fix AssertionErrors being thrown by EventsStream Part of the problem was that there was an off-by-one error in the assertion, but also the limit logic was too simple. Fix it all up and add some tests.
* Return total number of users and profile attributes in admin users endpoint ↵Manuel Stahl2020-04-281-0/+2
| | | | | (#6881) Signed-off-by: Manuel Stahl <manuel.stahl@awesome-technologies.de>
* Revert "Revert "Merge pull request #7315 from ↵Brendan Abolivier2020-04-232-1/+62
| | | | | | matrix-org/babolivier/request_token"" This reverts commit 1adf6a55870aa08de272591ff49db9dc49738076.
* Extend room admin api with additional attributes (#7225)Dirk Klimpel2020-04-222-592/+680
|
* Allow specifying the value of Accept-Language header for URL previews (#7265)Andrew Morgan2020-04-151-0/+55
|
* Fix the parameters of a test fixture (#7243)Zay11Zay2020-04-141-1/+1
|
* Default PL100 to enable encryption in a room (#7230)Andrew Morgan2020-04-092-4/+297
|
* Do not allow a deactivated user to login via SSO. (#7240)Patrick Cloke2020-04-091-3/+39
|
* Merge pull request #7157 from matrix-org/rev.outbound_device_pokes_testsRichard van der Hoff2020-03-302-4/+4
|\ | | | | Add tests for outbound device pokes
| * Remove spurious "name" parameter to `default_config`Richard van der Hoff2020-03-242-4/+4
| | | | | | | | | | this is never set to anything other than "test", and is a source of unnecessary boilerplate.
* | Always whitelist the login fallback for SSO (#7153)Richard van der Hoff2020-03-271-1/+8
| | | | | | | | | | | | | | That fallback sets the redirect URL to itself (so it can process the login token then return gracefully to the client). This would make it pointless to ask the user for confirmation, since the URL the confirmation page would be showing wouldn't be the client's.
* | Admin API to join users to a room. (#7051)Dirk Klimpel2020-03-271-0/+288
| |
* | Add options to prevent users from changing their profile. (#7096)Dirk Klimpel2020-03-271-0/+302
| |
* | Allow server admins to define and enforce a password policy (MSC2000). (#7118)Dirk Klimpel2020-03-261-0/+179
| |
* | Validate that the session is not modified during UI-Auth (#7068)Patrick Cloke2020-03-261-1/+67
| |
* | Clean up some LoggingContext stuff (#7120)Richard van der Hoff2020-03-241-8/+8
|/ | | | | | | | | | | | | | | | | | | | | | | * Pull Sentinel out of LoggingContext ... and drop a few unnecessary references to it * Factor out LoggingContext.current_context move `current_context` and `set_context` out to top-level functions. Mostly this means that I can more easily trace what's actually referring to LoggingContext, but I think it's generally neater. * move copy-to-parent into `stop` this really just makes `start` and `stop` more symetric. It also means that it behaves correctly if you manually `set_log_context` rather than using the context manager. * Replace `LoggingContext.alive` with `finished` Turn `alive` into `finished` and make it a bit better defined.
* Remove special casing of `m.room.aliases` events (#7034)Patrick Cloke2020-03-172-15/+33
|
* Revert "Add options to disable setting profile info for prevent changes. ↵Richard van der Hoff2020-03-171-303/+0
| | | | | | | (#7053)" This reverts commit 54dd28621b070ca67de9f773fe9a89e1f4dc19da, reversing changes made to 6640460d054e8f4444046a34bdf638921b31c01e.
* Add options to disable setting profile info for prevent changes. (#7053)Brendan Abolivier2020-03-101-0/+303
|\
| * lint, fix testsdklimpel2020-03-091-2/+2
| |
| * updates after reviewdklimpel2020-03-091-10/+7
| |
| * lintdklimpel2020-03-091-10/+8
| |
| * add testsdklimpel2020-03-091-0/+308
| |
* | Merge branch 'master' into developBrendan Abolivier2020-03-031-0/+111
|\ \
| * | Add a whitelist for the SSO confirmation step.Richard van der Hoff2020-03-021-3/+29
| | |
| * | Merge remote-tracking branch 'origin/release-v1.11.1' into release-v1.11.1Richard van der Hoff2020-03-021-28/+181
| |\ \
| | * | Fixed set a user as an admin with the new API (#6928)Dirk Klimpel2020-03-021-28/+181
| | | | | | | | | | | | | | | | Fix #6910
| * | | Add a confirmation step to the SSO login flowBrendan Abolivier2020-03-021-0/+85
| |/ /
* | / Validate the alt_aliases property of canonical alias events (#6971)Patrick Cloke2020-03-031-0/+160
| |/ |/|
* | Fixed set a user as an admin with the new API (#6928)Dirk Klimpel2020-02-281-32/+186
| | | | | | Fix #6910
* | Ensure 'deactivated' parameter is a boolean on user admin API, Fix error ↵Andrew Morgan2020-02-261-0/+59
| | | | | | | | handling of call to deactivate user (#6990)
* | Clarify list/set/dict/tuple comprehensions and enforce via flake8 (#6957)Patrick Cloke2020-02-211-13/+15
|/ | | | Ensure good comprehension hygiene using flake8-comprehensions.
* Merge pull request #6949 from matrix-org/rav/list_room_aliases_peekableRichard van der Hoff2020-02-191-0/+17
|\ | | | | Make room alias lists peekable
| * Make room alias lists peekableRichard van der Hoff2020-02-191-0/+17
| | | | | | | | | | | | As per https://github.com/matrix-org/matrix-doc/pull/2432#pullrequestreview-360566830, make room alias lists accessible to users outside world_readable rooms.
* | Move MSC2432 stuff onto unstable prefix (#6948)Richard van der Hoff2020-02-191-3/+13
|/ | | it's not in the spec yet, so needs to be unstable. Also add a feature flag for it. Also add a test for admin users.
* Implement GET /_matrix/client/r0/rooms/{roomId}/aliases (#6939)Richard van der Hoff2020-02-181-1/+69
| | | | | per matrix-org/matrix-doc#2432
* Raise the default power levels for invites, tombstones and server acls (#6834)Andrew Morgan2020-02-171-1/+3
|
* Return a 404 for admin api user lookup if user not found (#6901)Andrew Morgan2020-02-121-0/+16
|
* Admin api to add an email address (#6789)Dirk Klimpel2020-02-071-2/+17
|
* MSC2260: Block direct sends of m.room.aliases events (#6794)Richard van der Hoff2020-01-302-33/+15
| | | | | as per MSC2260
* Admin API to list, filter and sort rooms (#6720)Andrew Morgan2020-01-221-4/+389
|
* Lint + changelogBrendan Abolivier2020-01-221-3/+1
|
* Remove unused importBrendan Abolivier2020-01-221-1/+1
|
* Add tests for thumbnailingBrendan Abolivier2020-01-221-3/+45
|
* Fix and add test to deprecated quarantine media admin api (#6756)Andrew Morgan2020-01-221-4/+11
|
* Fix `/events/:event_id` deprecated API. (#6731)Erik Johnston2020-01-201-0/+27
|
* Fix changing password via user admin API. (#6730)Erik Johnston2020-01-201-0/+13
|
* Fix purge_room admin API (#6711)Erik Johnston2020-01-151-3/+1
|
* Add `local_current_membership` table (#6655)Erik Johnston2020-01-152-12/+9
| | | | | | | 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.
* Quarantine media by ID or user ID (#6681)Andrew Morgan2020-01-132-0/+378
|
* Allow admin users to create or modify users without a shared secret (#6495)Manuel Stahl2020-01-092-338/+465
| | | Signed-off-by: Manuel Stahl <manuel.stahl@awesome-technologies.de>
* Fix GET request on /_synapse/admin/v2/users endpoint (#6563)Manuel Stahl2020-01-081-0/+41
| | | | Fixes #6552
* Back out ill-advised notary server hackery (#6657)Richard van der Hoff2020-01-083-4/+131
| | | | | | | | | | | This was ill-advised. We can't modify verify_keys here, because the response object has already been signed by the requested key. Furthermore, it's somewhat unnecessary because existing versions of Synapse (which get upset that the notary key isn't present in verify_keys) will fall back to a direct fetch via `/key/v2/server`. Also: more tests for fetching keys via perspectives: it would be nice if we actually tested when our fetcher can't talk to our notary impl.
* Workaround for error when fetching notary's own key (#6620)Richard van der Hoff2020-01-061-0/+130
| | | | | | | | | | | | | | * Kill off redundant SynapseRequestFactory We already get the Site via the Channel, so there's no need for a dedicated RequestFactory: we can just use the right constructor. * Workaround for error when fetching notary's own key As a notary server, when we return our own keys, include all of our signing keys in verify_keys. This is a workaround for #6596.
* Merge release-v1.7.1 into developRichard van der Hoff2019-12-181-0/+127
|\
| * Incorporate reviewBrendan Abolivier2019-12-161-5/+0
| |
| * LintBrendan Abolivier2019-12-161-2/+1
| |
| * Add test caseBrendan Abolivier2019-12-161-0/+133
| |
* | Add option to allow profile queries without sharing a room (#6523)Will Hunt2019-12-161-0/+2
| |
* | Port handlers.account_validity to async/await.Erik Johnston2019-12-101-2/+1
|/
* Merge pull request #6484 from matrix-org/erikj/port_sync_handlerErik Johnston2019-12-091-1/+3
|\ | | | | Port SyncHandler to async/await
| * Fixup functions to consistently return deferredsErik Johnston2019-12-061-1/+3
| |
* | Merge branch 'develop' of github.com:matrix-org/synapse into ↵Erik Johnston2019-12-062-1/+12
|\| | | | | | | erikj/make_database_class
| * Fixup testsErik Johnston2019-12-052-1/+12
| |
* | Move DB pool and helper functions into dedicated Database classErik Johnston2019-12-051-1/+1
|/
* Remove underscore from SQLBaseStore functionsErik Johnston2019-12-041-1/+1
|
* Merge pull request #6329 from matrix-org/babolivier/context_filtersBrendan Abolivier2019-12-043-100/+381
|\ | | | | Filter state, events_before and events_after in /context requests
| * Un-remove room purge testBrendan Abolivier2019-12-041-0/+72
| |
| * Merge branch 'babolivier/context_filters' of github.com:matrix-org/synapse ↵Brendan Abolivier2019-12-041-1/+1
| |\ | | | | | | | | | into babolivier/context_filters
| | * Merge branch 'develop' into babolivier/context_filtersBrendan Abolivier2019-11-263-1/+213
| | |\
| * | \ Merge branch 'develop' into babolivier/context_filtersBrendan Abolivier2019-12-045-3/+477
| |\ \ \ | | |/ / | |/| |
| * | | LintBrendan Abolivier2019-11-051-30/+41
| | | |
| * | | Update copyrightsBrendan Abolivier2019-11-053-1/+7
| | | |
| * | | Add tests for /searchBrendan Abolivier2019-11-051-44/+143
| | | |
| * | | Merge labels tests for /context and /messagesBrendan Abolivier2019-11-051-146/+130
| | | |
| * | | Add test caseBrendan Abolivier2019-11-051-0/+182
| | | |
* | | | Add ephemeral messages support (MSC2228) (#6409)Brendan Abolivier2019-12-031-0/+101
| |/ / |/| | | | | | | | | | | | | | | | | | | | Implement part [MSC2228](https://github.com/matrix-org/matrix-doc/pull/2228). The parts that differ are: * the feature is hidden behind a configuration flag (`enable_ephemeral_messages`) * self-destruction doesn't happen for state events * only implement support for the `m.self_destruct_after` field (not the `m.self_destruct` one) * doesn't send synthetic redactions to clients because for this specific case we consider the clients to be able to destroy an event themselves, instead we just censor it (by pruning its JSON) in the database
* | | Add testsErik Johnston2019-11-281-0/+140
| | |
* | | Merge pull request #6358 from matrix-org/babolivier/message_retentionBrendan Abolivier2019-11-271-0/+293
|\ \ \ | | | | | | | | Implement message retention policies (MSC1763)
| * \ \ Merge branch 'develop' into babolivier/message_retentionBrendan Abolivier2019-11-263-1/+114
| |\ \ \ | | | |/ | | |/|
| * | | Don't restrict the tests to v1 roomsBrendan Abolivier2019-11-261-2/+0
| | | |
| * | | Lint againBrendan Abolivier2019-11-191-10/+2
| | | |
| * | | LintBrendan Abolivier2019-11-191-50/+23
| | | |
| * | | Don't apply retention policy based filtering on state eventsBrendan Abolivier2019-11-061-0/+10
| | | | | | | | | | | | | | | | As per MSC1763, 'Retention is only considered for non-state events.', so don't filter out state events based on the room's retention policy.
| * | | Implement per-room message retention policiesBrendan Abolivier2019-11-041-0/+320
| | |/ | |/|
* | | Remove assertion and provide a clear warning on startup for missing ↵Andrew Morgan2019-11-261-0/+1
| |/ |/| | | | | public_baseurl (#6379)
* | LintBrendan Abolivier2019-11-201-6/+8
| |
* | Test if a purge can make /messages return 500 responsesBrendan Abolivier2019-11-201-0/+72
| |
* | Blacklist PurgeRoomTestCase (#6361)Andrew Morgan2019-11-131-0/+2
| |
* | Merge pull request #6295 from matrix-org/erikj/split_purge_historyErik Johnston2019-11-081-1/+3
|\ \ | | | | | | Split purge API into events vs state and add PurgeEventsStorage
| * | Fix deleting state groups during room purge.Erik Johnston2019-11-061-1/+3
| |/ | | | | | | And fix the tests to actually test that things got deleted.
* | Merge branch 'develop' into rav/url_preview_limit_titleRichard van der Hoff2019-11-054-5/+332
|\|
| * Merge pull request #6301 from matrix-org/babolivier/msc2326Brendan Abolivier2019-11-013-5/+254
| |\ | | | | | | Implement MSC2326 (label based filtering)
| | * Incorporate reviewBrendan Abolivier2019-11-012-8/+8
| | |
| | * Incorporate reviewBrendan Abolivier2019-11-012-10/+10
| | |
| | * LintBrendan Abolivier2019-10-302-31/+30
| | |
| | * Add integration tests for /messagesBrendan Abolivier2019-10-301-1/+101
| | |
| | * Add more integration testingBrendan Abolivier2019-10-301-6/+39
| | |
| | * Add integration tests for syncBrendan Abolivier2019-10-302-5/+122
| | |
| * | Add unit test for /purge_room APIErik Johnston2019-10-311-0/+78
| |/
* | Apply suggestions from code reviewRichard van der Hoff2019-11-051-0/+1
| | | | | | | | Co-Authored-By: Brendan Abolivier <babolivier@matrix.org> Co-Authored-By: Erik Johnston <erik@matrix.org>
* | Strip overlong OpenGraph data from url previewRichard van der Hoff2019-11-051-0/+34
|/ | | | ... to stop people causing DoSes with malicious web pages
* Add domain validation when creating room with list of invitees (#6121)werner2912019-10-101-0/+9
|
* send 404 as http-status when filter-id is unknown to the server (#2380)krombel2019-10-101-1/+1
| | | | | | | This fixed the weirdness of 400 vs 404 as http status code in the case the filter id is not known by the server. As e.g. matrix-js-sdk expects 404 to catch this situation this leads to unwanted behaviour.
* Fix races in room stats (and other) updates. (#6187)Richard van der Hoff2019-10-101-1/+1
| | | | | | | Hopefully this will fix the occasional failures we were seeing in the room directory. The problem was that events are not necessarily persisted (and `current_state_delta_stream` updated) in the same order as their stream_id. So for instance current_state_delta 9 might be persisted *before* current_state_delta 8. Then, when the room stats saw stream_id 9, it assumed it had done everything up to 9, and never came back to do stream_id 8. We can solve this easily by only processing up to the stream_id where we know all events have been persisted.
* okBrendan Abolivier2019-09-271-1/+3
|
* LintBrendan Abolivier2019-09-271-7/+1
|
* Add test to validate the changeBrendan Abolivier2019-09-271-13/+57
|
* Stop advertising unsupported flows for registration (#6107)Richard van der Hoff2019-09-251-12/+17
| | | | | | | If email or msisdn verification aren't supported, let's stop advertising them for registration. Fixes #6100.
* Refactor the user-interactive auth handling (#6105)Richard van der Hoff2019-09-251-10/+16
| | | | | | | Pull the checkers out to their own classes, rather than having them lost in a massive 1000-line class which does everything. This is also preparation for some more intelligent advertising of flows, as per #6100
* Refactor code for calculating registration flows (#6106)Richard van der Hoff2019-09-251-12/+67
| | | | | | | | | because, frankly, it looked like it was written by an axe-murderer. This should be a non-functional change, except that where `m.login.dummy` was previously advertised *before* `m.login.terms`, it will now be advertised afterwards. AFAICT that should have no effect, and will be more consistent with the flows that involve passing a 3pid.
* Fix commentsErik Johnston2019-09-111-2/+2
| | | Co-Authored-By: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
* Add test for admin redaction ratelimiting.Erik Johnston2019-09-111-0/+25
|
* Fix and refactor room and user stats (#5971)Erik Johnston2019-09-041-2/+6
| | | Previously the stats were not being correctly populated.
* 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 :)
* Add testsBrendan Abolivier2019-08-011-0/+37
|
* Replace returnValue with return (#5736)Amber Brown2019-07-231-1/+1
|
* Remove the ability to query relations when the original event was redacted. ↵Andrew Morgan2019-07-181-3/+113
| | | | | | | (#5629) Fixes #5594 Forbid viewing relations on an event once it has been redacted.
* Ignore redactions of m.room.create events (#5701)Richard van der Hoff2019-07-171-0/+20
|
* More refactoring in `get_events_as_list` (#5707)Richard van der Hoff2019-07-171-0/+159
| | | | | | | | We can now use `_get_events_from_cache_or_db` rather than going right back to the database, which means that (a) we can benefit from caching, and (b) it opens the way forward to more extensive checks on the original event. We now always require the original event to exist before we will serve up a redaction.
* Implement access token expiry (#5660)Richard van der Hoff2019-07-121-0/+108
| | | | Record how long an access token is valid for, and raise a soft-logout once it expires.
* Include the original event in /relations (#5626)Andrew Morgan2019-07-091-0/+5
| | | When asking for the relations of an event, include the original event in the response. This will mostly be used for efficiently showing edit history, but could be useful in other circumstances.
* LintBrendan Abolivier2019-07-081-2/+2
|
* Add test caseBrendan Abolivier2019-07-081-0/+47
|
* Add origin_server_ts and sender fields to m.replace (#5613)Andrew Morgan2019-07-051-6/+18
| | | | | Riot team would like some extra fields as part of m.replace, so here you go. Fixes: #5598
* Move logging utilities out of the side drawer of util/ and into logging/ (#5606)Amber Brown2019-07-042-2/+2
|
* Fix media repo breaking (#5593)Amber Brown2019-07-021-0/+12
|
* Make the http server handle coroutine-making REST servlets (#5475)Amber Brown2019-06-291-10/+15
|
* Split public rooms directory auth config in twoBrendan Abolivier2019-06-241-1/+1
|
* Run Black. (#5482)Amber Brown2019-06-2013-179/+160
|
* Merge pull request #5440 from matrix-org/babolivier/third_party_event_rulesBrendan Abolivier2019-06-141-0/+79
|\ | | | | Allow server admins to define implementations of extra rules for allowing or denying incoming events
| * Add plugin APIs for implementations of custom event rules.Brendan Abolivier2019-06-141-0/+79
| |
* | Don't send renewal emails to deactivated usersBrendan Abolivier2019-06-141-25/+42
| |
* | Track deactivated accounts in the database (#5378)Brendan Abolivier2019-06-141-0/+45
| |
* | Merge branch 'master' of github.com:matrix-org/synapse into developErik Johnston2019-06-113-12/+241
|\ \
| * | Bump bleach version so that tests can run on old deps.Erik Johnston2019-06-112-12/+0
| | |
| * | Change password reset links to /_matrix.Erik Johnston2019-06-111-0/+241
| |/
* | Merge pull request #5363 from ↵Brendan Abolivier2019-06-101-0/+35
|\ \ | |/ |/| | | | | matrix-org/babolivier/account_validity_send_mail_auth Don't check whether the user's account is expired on /send_mail requests
| * Don't check whether the user's account is expired on /send_mail requestsBrendan Abolivier2019-06-051-0/+35
| |
* | Unify v1 and v2 REST client APIs (#5226)Amber Brown2019-06-032-2/+1
| |
* | Merge pull request #5309 from matrix-org/rav/limit_displayname_lengthRichard van der Hoff2019-06-011-2/+60
|\ \ | | | | | | Limit displaynames and avatar URLs
| * | add some testsRichard van der Hoff2019-06-011-2/+60
| | |
* | | Merge pull request #5276 from matrix-org/babolivier/account_validity_job_deltaErik Johnston2019-05-311-5/+10
|\ \ \ | | | | | | | | Allow configuring a range for the account validity startup job
| * | | Move delta from +10% to -10%Brendan Abolivier2019-05-311-2/+2
| | | |
| * | | Make max_delta equal to period * 10%Brendan Abolivier2019-05-311-17/+1
| | | |
| * | | TypoBrendan Abolivier2019-05-281-1/+1
| | | |
| * | | Allow configuring a range for the account validity startup jobBrendan Abolivier2019-05-281-0/+21
| | |/ | |/| | | | | | | | | | When enabling the account validity feature, Synapse will look at startup for registered account without an expiration date, and will set one equals to 'now + validity_period' for them. On large servers, it can mean that a large number of users will have the same expiration date, which means that they will all be sent a renewal email at the same time, which isn't ideal. In order to mitigate this, this PR allows server admins to define a 'max_delta' so that the expiration date is a random value in the [now + validity_period ; now + validity_period + max_delta] range. This allows renewal emails to be progressively sent over a configured period instead of being sent all in one big batch.
* | | Add config option for setting homeserver's default room version (#5223)Andrew Morgan2019-05-231-2/+5
| | | | | | | | | | | | | | | 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.
* | | Room Statistics (#4338)Amber Brown2019-05-211-0/+17
| |/ |/|
* | Merge pull request #5212 from matrix-org/erikj/deny_multiple_reactionsErik Johnston2019-05-211-1/+26
|\ \ | | | | | | Block attempts to annotate the same event twice
| * | Block attempts to annotate the same event twiceErik Johnston2019-05-201-1/+26
| | |
* | | Merge pull request #5204 from ↵Brendan Abolivier2019-05-211-0/+55
|\ \ \ | |/ / |/| / | |/ | | matrix-org/babolivier/account_validity_expiration_date Add startup background job for account validity
| * Add startup background job for account validityBrendan Abolivier2019-05-171-0/+55
| | | | | | | | If account validity is enabled in the server's configuration, this job will run at startup as a background job and will stick an expiration date to any registered account missing one.
* | Rename relation types to match MSCErik Johnston2019-05-201-11/+11
| |
* | Merge pull request #5209 from matrix-org/erikj/reactions_baseErik Johnston2019-05-201-0/+539
|\ \ | | | | | | Land basic reaction and edit support.
| * | Fixup commentsErik Johnston2019-05-201-2/+2
| | |
| * | Correctly update aggregation counts after redactionErik Johnston2019-05-201-0/+37
| | |
| * | Make tests use different user for each reaction it sendsErik Johnston2019-05-171-12/+68
| | | | | | | | | | | | As users aren't allowed to react with the same emoji more than once.
| * | Add basic editing supportErik Johnston2019-05-161-9/+82
| | |
| * | Check that event is visible in new APIsErik Johnston2019-05-161-1/+1
| | |
| * | Add aggregations APIErik Johnston2019-05-161-3/+248
| | |
| * | Add simple pagination APIErik Johnston2019-05-151-0/+30
| | |
| * | Add simple send_relation API and track in DBErik Johnston2019-05-151-0/+98
| | |
* | | Merge pull request #5196 from matrix-org/babolivier/per_room_profilesBrendan Abolivier2019-05-171-1/+69
|\ \ \ | | |/ | |/| Add an option to disable per-room profiles
| * | LintBrendan Abolivier2019-05-161-1/+0
| | |
| * | LintBrendan Abolivier2019-05-161-1/+3
| | |
| * | Forgot copyrightBrendan Abolivier2019-05-161-0/+1
| | |
| * | Add test caseBrendan Abolivier2019-05-161-1/+67
| |/
* | Merge pull request #5174 from matrix-org/dbkr/add_dummy_flow_to_recaptcha_onlyDavid Baker2019-05-161-1/+8
|\ \ | |/ |/| Re-order registration stages to do msisdn & email auth last
| * Merge remote-tracking branch 'origin/develop' into ↵David Baker2019-05-131-11/+11
| |\ | | | | | | | | | dbkr/add_dummy_flow_to_recaptcha_only
| * | And now I realise why the test is failing...David Baker2019-05-131-1/+8
| | |
* | | Migrate all tests to use the dict-based config format instead of hanging ↵Amber Brown2019-05-1310-69/+70
| |/ |/| | | | | items off HomeserverConfig (#5171)
* | URL preview blacklisting fixes (#5155)Andrew Morgan2019-05-101-11/+11
|/ | | Prevents a SynapseError being raised inside of a IResolutionReceiver and instead opts to just return 0 results. This thus means that we have to lump a failed lookup and a blacklisted lookup together with the same error message, but the substitute should be generic enough to cover both cases.
* Run Black on the tests again (#5170)Amber Brown2019-05-108-222/+114
|
* Fix bogus imports in tests (#5154)Brendan Abolivier2019-05-083-5/+6
|
* add options to require an access_token to GET /profile and /publicRooms on ↵Matthew Hodgson2019-05-082-1/+123
| | | | | | | | | | | | | | | | | CS API (#5083) This commit adds two config options: * `restrict_public_rooms_to_local_users` Requires auth to fetch the public rooms directory through the CS API and disables fetching it through the federation API. * `require_auth_for_profile_requests` When set to `true`, requires that requests to `/profile` over the CS API are authenticated, and only returns the user's profile if the requester shares a room with the profile's owner, as per MSC1301. MSC1301 also specifies a behaviour for federation (only returning the profile if the server asking for it shares a room with the profile's owner), but that's currently really non-trivial to do in a not too expensive way. Next step is writing down a MSC that allows a HS to specify which user sent the profile query. In this implementation, Synapse won't send a profile query over federation if it doesn't believe it already shares a room with the profile's owner, though. Groups have been intentionally omitted from this commit.
* Do checks on aliases for incoming m.room.aliases events (#5128)Brendan Abolivier2019-05-081-0/+169
| | | | | Follow-up to #5124 Also added a bunch of checks to make sure everything (both the stuff added on #5124 and this PR) works as intended.
* Remove the requirement to authenticate for /admin/server_version. (#5122)Richard van der Hoff2019-05-071-22/+8
| | | | | | | | | This endpoint isn't much use for its intended purpose if you first need to get yourself an admin's auth token. I've restricted it to the `/_synapse/admin` path to make it a bit easier to lock down for those concerned about exposing this information. I don't imagine anyone is using it in anger currently.
* Add admin api for sending server_notices (#5121)Richard van der Hoff2019-05-0210-14/+14
|
* Move admin api impl to its own packageRichard van der Hoff2019-05-0111-25/+47
| | | | It doesn't really belong under rest/client/v1 any more.
* Merge branch 'develop' of github.com:matrix-org/synapse into ↵Erik Johnston2019-04-173-2/+191
|\ | | | | | | babolivier/account_expiration
| * Merge pull request #5047 from matrix-org/babolivier/account_expirationBrendan Abolivier2019-04-171-1/+99
| |\ | | | | | | Send out emails with links to extend an account's validity period
| * \ Merge pull request #5027 from matrix-org/babolivier/account_expirationBrendan Abolivier2019-04-091-2/+49
| |\ \ | | | | | | | | Add time-based account expiration
| * | | Add config option to block users from looking up 3PIDs (#5010)Brendan Abolivier2019-04-041-0/+65
| | | |
| * | | Add unit test for deleting groupsErik Johnston2019-04-031-0/+124
| | | |
| * | | Collect room-version variations into one place (#4969)Richard van der Hoff2019-04-011-2/+2
| | | | | | | | | | | | | | | | 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.
* | | | Add management endpoints for account validityBrendan Abolivier2019-04-171-8/+87
| |_|/ |/| |
* | | Send out emails with links to extend an account's validity periodBrendan Abolivier2019-04-171-1/+99
| |/ |/|
* | Add account expiration featureBrendan Abolivier2019-04-091-2/+49
|/
* Some more porting to HomeserverTestCase and remove old RESTHelper (#4913)Amber Brown2019-03-221-125/+0
|
* Merge pull request #4908 from matrix-org/erikj/block_peek_on_blocked_roomsErik Johnston2019-03-211-1/+65
|\ | | | | Deny peeking into rooms that have been blocked
| * isortErik Johnston2019-03-211-1/+1
| |
| * Deny peeking into rooms that have been blockedErik Johnston2019-03-211-1/+65
| |
* | Fix typo and add descriptionErik Johnston2019-03-211-1/+5
|/
* Rejig testcase to make it more extensibleErik Johnston2019-03-211-17/+22
|
* Remove debugErik Johnston2019-03-211-1/+0
|
* Add testsErik Johnston2019-03-211-1/+66
|
* Fix registration testRichard van der Hoff2019-03-191-1/+2
| | | | | * Set allow_guest_access = True, since we rely on it * config doesn't have a `hostname` attribute; it is `server_name`
* Add ratelimiting on failed login attempts (#4865)Brendan Abolivier2019-03-181-0/+45
|
* Add ratelimiting on login (#4821)Brendan Abolivier2019-03-152-2/+122
| | | Add two ratelimiters on login (per-IP address and per-userID).
* Merge pull request #4772 from jbweston/jbweston/server-version-apiErik Johnston2019-03-051-2/+36
|\ | | | | Add 'server_version' endpoint to admin API
| * Add 'server_version' endpoint to admin APIJoseph Weston2019-03-011-1/+35
| | | | | | | | | | This is required because the 'Server' HTTP header is not always passed through proxies.
| * Import 'admin' module rather than 'register_servlets' directlyJoseph Weston2019-03-011-2/+2
| | | | | | | | | | | | We will later need also to import 'register_servlets' from the 'login' module, so we un-pollute the namespace now to keep the logical changes separate.
* | Add rate-limiting on registration (#4735)Brendan Abolivier2019-03-054-7/+55
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Rate-limiting for registration * Add unit test for registration rate limiting * Add config parameters for rate limiting on auth endpoints * Doc * Fix doc of rate limiting function Co-Authored-By: babolivier <contact@brendanabolivier.com> * Incorporate review * Fix config parsing * Fix linting errors * Set default config for auth rate limiting * Fix tests * Add changelog * Advance reactor instead of mocked clock * Move parameters to registration specific config and give them more sensible default values * Remove unused config options * Don't mock the rate limiter un MAU tests * Rename _register_with_store into register_with_store * Make CI happy * Remove unused import * Update sample config * Fix ratelimiting test for py2 * Add non-guest test
* Fix parsing of Content-Disposition headers (#4763)Richard van der Hoff2019-02-271-0/+45
| | | | | | | | | | | * Fix parsing of Content-Disposition headers TIL: filenames in content-dispostion headers can contain semicolons, and aren't %-encoded. * fix python2 incompatibility * Fix docstrings
* Move register_device into handlerErik Johnston2019-02-181-70/+23
|
* Fix unit testsErik Johnston2019-02-181-6/+15
|
* rework format of change password capabilityNeil Johnson2019-01-291-2/+2
|