summary refs log tree commit diff
path: root/synapse/rest/client/v2_alpha (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Limit length of accepted email addresses (#9855)Erik Johnston2021-04-222-6/+10
|
* Rename handler and config modules which end in handler/config. (#9816)Patrick Cloke2021-04-201-1/+1
|
* Port "Allow users to click account renewal links multiple times without ↵Andrew Morgan2021-04-191-7/+25
| | | | | hitting an 'Invalid Token' page #74" from synapse-dinsic (#9832) This attempts to be a direct port of https://github.com/matrix-org/synapse-dinsic/pull/74 to mainline. There was some fiddling required to deal with the changes that have been made to mainline since (mainly dealing with the split of `RegistrationWorkerStore` from `RegistrationStore`, and the changes made to `self.make_request` in test code).
* Remove redundant "coding: utf-8" lines (#9786)Jonathan de Jong2021-04-1428-28/+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>`
* Require AppserviceRegistrationType (#9548)Will Hunt2021-04-121-7/+16
| | | This change ensures that the appservice registration behaviour follows the spec. We decided to do this for Dendrite, so it made sense to also make a PR for synapse to correct the behaviour.
* Make RateLimiter class check for ratelimit overrides (#9711)Erik Johnston2021-03-302-6/+12
| | | | | | | This should fix a class of bug where we forget to check if e.g. the appservice shouldn't be ratelimited. We also check the `ratelimit_override` table to check if the user has ratelimiting disabled. That table is really only meant to override the event sender ratelimiting, so we don't use any values from it (as they might not make sense for different rate limits), but we do infer that if ratelimiting is disabled for the user we should disabled all ratelimits. Fixes #9663
* Make it possible to use dmypy (#9692)Erik Johnston2021-03-261-0/+3
| | | | | | | | | Running `dmypy run` will do a `mypy` check while spinning up a daemon that makes rerunning `dmypy run` a lot faster. `dmypy` doesn't support `follow_imports = silent` and has `local_partial_types` enabled, so this PR enables those options and fixes the issues that were newly raised. Note that `local_partial_types` will be enabled by default in upcoming mypy releases.
* Add a type hints for service notices to the HomeServer object. (#9675)Patrick Cloke2021-03-241-3/+8
|
* Import HomeServer from the proper module. (#9665)Patrick Cloke2021-03-232-2/+2
|
* Return m.change_password.enabled=false if local database is disabled (#9588)Dirk Klimpel2021-03-161-11/+12
| | | | | Instead of if the user does not have a password hash. This allows a SSO user to add a password to their account, but only if the local password database is configured.
* Fix additional type hints from Twisted 21.2.0. (#9591)Patrick Cloke2021-03-121-32/+73
|
* Use the proper Request in type hints. (#9515)Patrick Cloke2021-03-011-1/+1
| | | | This also pins the Twisted version in the mypy job for CI until proper type hints are fixed throughout Synapse.
* Ratelimit cross-user key sharing requests. (#8957)Patrick Cloke2021-02-191-3/+1
|
* Add type hints to groups code. (#9393)Patrick Cloke2021-02-171-23/+120
|
* Update black, and run auto formatting over the codebase (#9381)Eric Eastwood2021-02-166-57/+68
| | | | | | | - 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
* Fix some typos.Patrick Cloke2021-02-121-1/+1
|
* Type hints and validation improvements. (#9321)Patrick Cloke2021-02-082-60/+121
| | | | | * Adds type hints to the groups servlet and stringutils code. * Assert the maximum length of some input values for spec compliance.
* Ratelimit 3PID /requestToken API (#9238)Erik Johnston2021-01-282-2/+16
|
* Allow moving account data and receipts streams off master (#9104)Erik Johnston2021-01-182-26/+7
|
* Remove user's avatar URL and displayname when deactivated. (#8932)Dirk Klimpel2021-01-121-2/+5
| | | This only applies if the user's data is to be erased.
* UI Auth via SSO: redirect the user to an appropriate SSO. (#9081)Richard van der Hoff2021-01-123-42/+22
| | | | | | | If we have integrations with multiple identity providers, when the user does a UI Auth, we need to redirect them to the right one. There are a few steps to this. First of all we actually need to store the userid of the user we are trying to validate in the UIA session, since the /auth/sso/fallback/web request is unauthenticated. Then, once we get the /auth/sso/fallback/web request, we can fish the user id out of the session, and use it to look up the external id mappings, and hence pick an SSO provider for them.
* Kill off `HomeServer.get_ip_from_request()` (#9080)Richard van der Hoff2021-01-125-39/+10
| | | Homeserver.get_ip_from_request() used to be a bit more complicated, but now it is totally redundant. Let's get rid of it.
* Combine the SSO Redirect Servlets (#9015)Richard van der Hoff2021-01-041-20/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | * Implement CasHandler.handle_redirect_request ... to make it match OidcHandler and SamlHandler * Clean up interface for OidcHandler.handle_redirect_request Make it accept `client_redirect_url=None`. * Clean up interface for `SamlHandler.handle_redirect_request` ... bring it into line with CAS and OIDC by making it take a Request parameter, move the magic for `client_redirect_url` for UIA into the handler, and fix the return type to be a `str` rather than a `bytes`. * Define a common protocol for SSO auth provider impls * Give SsoIdentityProvider an ID and register them * Combine the SSO Redirect servlets Now that the SsoHandler knows about the identity providers, we can combine the various *RedirectServlets into a single implementation which delegates to the right IdP. * changelog
* Check if group IDs are valid before using them. (#8977)Patrick Cloke2020-12-301-3/+45
|
* Validate input parameters for the sendToDevice API. (#8975)Patrick Cloke2020-12-291-1/+2
| | | | This makes the "messages" key in the content required. This is currently optional in the spec, but that seems to be an error.
* Allow re-using a UI auth validation for a period of time (#8970)Patrick Cloke2020-12-181-3/+7
|
* Merge remote-tracking branch 'origin/erikj/as_mau_block' into developErik Johnston2020-12-181-3/+11
|\
| * Correctly handle AS registerations and add testErik Johnston2020-12-171-3/+11
| |
* | Fix errorcode for disabled registration (#8867)Richard van der Hoff2020-12-031-1/+1
|/ | | | The spec says we should return `M_FORBIDDEN` when someone tries to register and registration is disabled.
* Simplify the way the `HomeServer` object caches its internal attributes. ↵Jonathan de Jong2020-11-302-5/+5
| | | | | (#8565) Changes `@cache_in_self` to use underscore-prefixed attributes.
* Add admin API for logging in as a user (#8617)Erik Johnston2020-11-171-0/+1
|
* Add metrics for tracking 3PID /requestToken requests. (#8712)Erik Johnston2020-11-132-0/+22
| | | | | | The main use case is to see how many requests are being made, and how many are second/third/etc attempts. If there are large number of retries then that likely indicates a delivery problem.
* Remove unused OPTIONS handlers. (#8621)Patrick Cloke2020-10-223-9/+0
| | | | The handling of OPTIONS requests was consolidated in #7534, but the endpoint specific handlers were not removed.
* Remove the deprecated Handlers object (#8494)Patrick Cloke2020-10-092-11/+11
| | | All handlers now available via get_*_handler() methods on the HomeServer.
* Add support for MSC2697: Dehydrated devices (#8380)Hubert Chathi2020-10-072-15/+156
| | | | This allows a user to store an offline device on the server and then restore it at a subsequent login.
* Add support for MSC2732: olm fallback keys (#8312)Hubert Chathi2020-10-061-0/+1
|
* Convert additional templates to Jinja (#8444)Patrick Cloke2020-10-021-110/+26
| | | This converts a few more of our inline HTML templates to Jinja. This is somewhat part of #7280 and should make it a bit easier to customize these in the future.
* Make token serializing/deserializing async (#8427)Erik Johnston2020-09-302-6/+7
| | | 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).
* Merge branch 'develop' of github.com:matrix-org/synapse into ↵Andrew Morgan2020-09-291-6/+9
|\ | | | | | | anoa/info-mainline-no-check-password-reset
| * Only assert valid next_link params when provided (#8417)Andrew Morgan2020-09-291-6/+9
| | | | | | | | | | | | | | Broken in https://github.com/matrix-org/synapse/pull/8275 and has yet to be put in a release. Fixes https://github.com/matrix-org/synapse/issues/8418. `next_link` is an optional parameter. However, we were checking whether the `next_link` param was valid, even if it wasn't provided. In that case, `next_link` was `None`, which would clearly not be a valid URL. This would prevent password reset and other operations if `next_link` was not provided, and the `next_link_domain_whitelist` config option was set.
* | Don't check whether a 3pid is allowed to register during password resetAndrew Morgan2020-09-281-7/+0
|/ | | | | This endpoint should only deal with emails that have already been approved, and are attached with user's account. There's no need to re-check them here.
* Simplify super() calls to Python 3 syntax. (#8344)Patrick Cloke2020-09-1826-82/+82
| | | | | | | This converts calls like super(Foo, self) -> super(). Generated with: sed -i "" -Ee 's/super\([^\(]+\)/super()/g' **/*.py
* Fix a potential bug of UnboundLocalError (#8329)Jonathan de Jong2020-09-171-5/+8
| | | Replaced with less buggier control flow
* Fix typos in comments.Patrick Cloke2020-09-141-1/+1
|
* Show a confirmation page during user password reset (#8004)Andrew Morgan2020-09-101-76/+0
| | | | | This PR adds a confirmation step to resetting your user password between clicking the link in your email and your password actually being reset. This is to better align our password reset flow with the industry standard of requiring a confirmation from the user after email validation.
* Add a config option for validating 'next_link' parameters against a domain ↵Andrew Morgan2020-09-081-9/+57
| | | | | | | | | | | whitelist (#8275) This is a config option ported over from DINUM's Sydent: https://github.com/matrix-org/sydent/pull/285 They've switched to validating 3PIDs via Synapse rather than Sydent, and would like to retain this functionality. This original purpose for this change is phishing prevention. This solution could also potentially be replaced by a similar one to https://github.com/matrix-org/synapse/pull/8004, but across all `*/submit_token` endpoint. This option may still be useful to enterprise even with that safeguard in place though, if they want to be absolutely sure that their employees don't follow links to other domains.
* Stop sub-classing object (#8249)Patrick Cloke2020-09-041-1/+1
|
* Re-implement unread counts (again) (#8059)Brendan Abolivier2020-09-021-0/+1
|
* Add /user/{user_id}/shared_rooms/ api (#7785)Will Hunt2020-09-021-0/+68
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add shared_rooms api * Add changelog * Add . * Wrap response in {"rooms": } * linting * Add unstable_features key * Remove options from isort that aren't part of 5.x `-y` and `-rc` are now default behaviour and no longer exist. `dont-skip` is no longer required https://timothycrosley.github.io/isort/CHANGELOG/#500-penny-july-4-2020 * Update imports to make isort happy * Add changelog * Update tox.ini file with correct invocation * fix linting again for isort * Vendor prefix unstable API * Fix to match spec * import Codes * import Codes * Use FORBIDDEN * Update changelog.d/7785.feature Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com> * Implement get_shared_rooms_for_users * a comma * trailing whitespace * Handle the easy feedback * Switch to using runInteraction * Add tests * Feedback * Seperate unstable endpoint from v2 * Add upgrade node * a line * Fix style by adding a blank line at EOF. * Update synapse/storage/databases/main/user_directory.py Co-authored-by: Tulir Asokan <tulir@maunium.net> * Update synapse/storage/databases/main/user_directory.py Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com> * Update UPGRADE.rst Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com> * Fix UPGRADE/CHANGELOG unstable paths unstable unstable unstable Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com> Co-authored-by: Tulir Asokan <tulir@maunium.net> Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com> Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com> Co-authored-by: Tulir Asokan <tulir@maunium.net>
* Stop shadow-banned users from sending non-member events. (#8142)Patrick Cloke2020-08-242-10/+22
|
* Don't fail /submit_token requests on incorrect session ID if ↵Brendan Abolivier2020-08-242-0/+17
| | | | | | | | | | | | | | | | | | | request_token_inhibit_3pid_errors is turned on (#7991) * Don't raise session_id errors on submit_token if request_token_inhibit_3pid_errors is set * Changelog * Also wait some time before responding to /requestToken * Incorporate review * Update synapse/storage/databases/main/registration.py Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com> * Incorporate review Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
* Allow denying or shadow banning registrations via the spam checker (#8034)Patrick Cloke2020-08-201-0/+5
|
* Ensure a group ID is valid before trying to get rooms for it. (#8129)Patrick Cloke2020-08-201-0/+4
|
* Be stricter about JSON that is accepted by Synapse (#8106)Patrick Cloke2020-08-191-3/+2
|
* Use the default templates when a custom template file cannot be found (#8037)Andrew Morgan2020-08-172-57/+18
| | | Fixes https://github.com/matrix-org/synapse/issues/6583
* Remove unnecessary maybeDeferred calls (#8044)Patrick Cloke2020-08-071-1/+1
|
* Revert #7736 (#8039)Brendan Abolivier2020-08-061-1/+0
|
* Convert synapse.api to async/await (#8031)Patrick Cloke2020-08-061-1/+1
|
* Improve performance of the register endpoint (#8009)Patrick Cloke2020-08-062-65/+129
|
* Re-implement unread counts (#7736)Brendan Abolivier2020-07-291-0/+1
|
* Do not convert async functions to Deferreds in the interactive_auth_handler ↵Patrick Cloke2020-07-241-26/+21
| | | | (#7944)
* Skip serializing /sync response if client has disconnected (#7927)Richard van der Hoff2020-07-221-0/+6
| | | ... it's a load of work which may be entirely redundant.
* Add debugging to sync response generation (#7929)Richard van der Hoff2020-07-221-0/+3
|
* Add a default limit (of 100) to get/sync operations. (#7858)Patrick Cloke2020-07-171-1/+10
|
* Fix inconsistent handling of upper and lower cases of email addresses. (#7021)Dirk Klimpel2020-07-032-12/+50
| | | fixes #7016
* Merge branch 'master' into developPatrick Cloke2020-07-024-39/+16
|\
| * Ensure that HTML pages served from Synapse include headers to avoid embedding.Patrick Cloke2020-07-024-39/+16
| |
* | Replace all remaining six usage with native Python 3 equivalents (#7704)Dagfinn Ilmari Mannsåker2020-06-163-17/+9
|/
* Enable 3PID add/bind/unbind endpoints on r0 routesBrendan Abolivier2020-06-151-3/+3
|
* Performance improvements and refactor of Ratelimiter (#7595)Andrew Morgan2020-06-051-15/+1
| | | | | | | | | | 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 encryption algorithm typos in tests/comments (#7637)Andrew Morgan2020-06-041-4/+4
| | | | | | | | @uhoreg has confirmed these were both typos. They are only in comments and tests though, rather than anything critical. Introduced in: * https://github.com/matrix-org/synapse/pull/7157 * https://github.com/matrix-org/synapse/pull/5726
* Add ability to wait for replication streams (#7542)Erik Johnston2020-05-221-1/+1
| | | | | | | 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.
* Use a non-empty RelayState for user interactive auth with SAML. (#7552)Patrick Cloke2020-05-221-1/+4
|
* Hash passwords earlier in the password reset process (#7538)Patrick Cloke2020-05-202-5/+20
| | | | This now matches the logic of the registration process as modified in 56db0b1365965c02ff539193e26c333b7f70d101 / #7523.
* Merge tag 'v1.13.0rc3' into developPatrick Cloke2020-05-181-9/+13
|\ | | | | | | | | | | | | | | Synapse 1.13.0rc3 (2020-05-18) Bugfixes: - Hash passwords as early as possible during registration. #7523
| * Hash passwords earlier in the registration process (#7523)Patrick Cloke2020-05-181-9/+13
| |
* | Support UI Authentication for OpenID Connect accounts (#7457)Patrick Cloke2020-05-151-4/+15
|/
* Do not validate that the client dict is stable during UI Auth. (#7483)Patrick Cloke2020-05-131-1/+0
| | | | This backs out some of the validation for the client dictionary and logs if this changes during a user interactive authentication session instead.
* Rework UI Auth session validation for registration (#7455)Patrick Cloke2020-05-081-0/+1
| | | | Be less strict about validation of UI authentication sessions during registration to match client expecations.
* Persist user interactive authentication sessions (#7302)Patrick Cloke2020-04-302-4/+4
| | | | | 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.
* Revert "Revert "Merge pull request #7315 from ↵Brendan Abolivier2020-04-232-2/+27
| | | | | | matrix-org/babolivier/request_token"" This reverts commit 1adf6a55870aa08de272591ff49db9dc49738076.
* Merge branch 'release-v1.12.4' into developRichard van der Hoff2020-04-221-0/+8
|\
| * Support GET account_data requests on a worker (#7311)Richard van der Hoff2020-04-211-0/+8
| |
* | Use a template for the SSO success page to allow for customization. (#7279)Patrick Cloke2020-04-171-1/+24
| |
* | Support CAS in UI Auth flows. (#7186)Patrick Cloke2020-04-031-5/+23
| |
* | Support SAML in the user interactive authentication workflow. (#7102)Patrick Cloke2020-04-015-30/+50
| |
* | Add options to prevent users from changing their profile. (#7096)Dirk Klimpel2020-03-271-0/+16
| |
* | Ensure is_verified on /_matrix/client/r0/room_keys/keys is a boolean (#7150)Andrew Morgan2020-03-271-1/+1
| |
* | Allow server admins to define and enforce a password policy (MSC2000). (#7118)Dirk Klimpel2020-03-262-0/+60
| |
* | Validate that the session is not modified during UI-Auth (#7068)Patrick Cloke2020-03-264-8/+14
| |
* | Clean-up some auth/login REST code (#7115)Patrick Cloke2020-03-201-33/+20
|/
* Add an option to the set password API to choose whether to logout other ↵Patrick Cloke2020-03-181-1/+4
| | | | devices. (#7085)
* Revert "Add options to disable setting profile info for prevent changes. ↵Richard van der Hoff2020-03-171-16/+0
| | | | | | | (#7053)" This reverts commit 54dd28621b070ca67de9f773fe9a89e1f4dc19da, reversing changes made to 6640460d054e8f4444046a34bdf638921b31c01e.
* updates after reviewdklimpel2020-03-091-6/+12
|
* add disable_3pid_changesdklimpel2020-03-081-0/+10
|
* Clarify list/set/dict/tuple comprehensions and enforce via flake8 (#6957)Patrick Cloke2020-02-211-1/+1
| | | | Ensure good comprehension hygiene using flake8-comprehensions.
* Add `allow_departed_users` param to `check_in_room_or_world_readable`Richard van der Hoff2020-02-191-6/+6
| | | | | | | ... and set it everywhere it's called. while we're here, rename it for consistency with `check_user_in_room` (and to help check that I haven't missed any instances)
* Add `rooms.room_version` column (#6729)Erik Johnston2020-01-271-1/+2
| | | This is so that we don't have to rely on pulling it out from `current_state_events` table.
* Validate client_secret parameter (#6767)Andrew Morgan2020-01-242-5/+21
|
* Admin API to list, filter and sort rooms (#6720)Andrew Morgan2020-01-221-1/+1
|
* Fixup synapse.rest to pass mypy (#6732)Erik Johnston2020-01-202-2/+4
|
* Remove duplicate session check in web fallback servlet (#6702)Andrew Morgan2020-01-151-4/+0
|
* Port rest.client.v2Erik Johnston2019-12-0523-505/+361
|
* Add User-Interactive Auth to /account/3pid/add (#6119)Andrew Morgan2019-11-291-0/+5
|
* add etag and count to key backup endpoints (#5858)Hubert Chathi2019-11-271-4/+4
|
* Update black to 19.10b0 (#6304)Amber Brown2019-11-012-4/+4
| | | * update version of black and also fix the mypy config being overridden
* Remove usage of deprecated logger.warn method from codebase (#6271)Andrew Morgan2019-10-313-13/+13
| | | Replace every instance of `logger.warn` with `logger.warning` as the former is deprecated.
* Port receipt and read markers to async/waitErik Johnston2019-10-292-15/+9
|
* Address codestyle concernsMichael Kaye2019-10-241-1/+6
|
* Delay printf until logging is required.Michael Kaye2019-10-241-3/+3
| | | | | Using % will cause the string to be generated even if debugging is off.
* Merge branch 'develop' into cross-signing_sig_uploadHubert Chathi2019-10-185-222/+419
|\
| * Merge branch 'develop' into uhoreg/e2e_cross-signing_mergedHubert Chathi2019-10-185-222/+419
| |\
| | * Merge pull request #6189 from matrix-org/uhoreg/e2e_backup_optional_versionHubert Chathi2019-10-111-1/+1
| | |\ | | | | | | | | make version optional in body of e2e backup version update
| | | * make version optional in body of e2e backup version updateHubert Chathi2019-10-091-1/+1
| | | | | | | | | | | | | | | | to agree with latest version of the MSC
| | * | send 404 as http-status when filter-id is unknown to the server (#2380)krombel2019-10-102-22/+31
| | |/ | | | | | | | | | | | | | | | | | | 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.
| | * Kill off half-implemented password-reset via sms (#6101)Richard van der Hoff2019-09-261-64/+1
| | | | | | | | | | | | | | | | | | | | | Doing a password reset via SMS has never worked, and in any case is a silly idea because msisdn recycling is a thing. See also matrix-org/matrix-doc#2303.
| | * Stop advertising unsupported flows for registration (#6107)Richard van der Hoff2019-09-251-3/+29
| | | | | | | | | | | | | | | | | | | | | If email or msisdn verification aren't supported, let's stop advertising them for registration. Fixes #6100.
| | * Refactor code for calculating registration flows (#6106)Richard van der Hoff2019-09-251-62/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| | * Add POST submit_token endpoint for MSISDN (#6078)Andrew Morgan2019-09-231-2/+45
| | | | | | | | | First part of solving #6076
| | * Implement MSC2290 (#6043)Andrew Morgan2019-09-232-72/+95
| | | | | | | | | | | | | | | | | | | | | Implements MSC2290. This PR adds two new endpoints, /unstable/account/3pid/add and /unstable/account/3pid/bind. Depending on the progress of that MSC the unstable prefix may go away. This PR also removes the blacklist on some 3PID tests which occurs in #6042, as the corresponding Sytest PR changes them to use the new endpoints. Finally, it also modifies the account deactivation code such that it doesn't just try to deactivate 3PIDs that were bound to the user's account, but any 3PIDs that were bound through the homeserver on that user's account.
| | * Disable /register/available if registration is disabled (#6082)Andrew Morgan2019-09-231-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes #6066 This register endpoint should be disabled if registration is disabled, otherwise we're giving anyone the ability to check if a username exists on a server when we don't need to be. Error code is 403 (Forbidden) as that's the same returned by /register when registration is disabled.
| | * Allow HS to send emails when adding an email to the HS (#6042)Andrew Morgan2019-09-202-51/+225
| | |
| | * Remove trailing slash ability from password reset's submit_token endpoint ↵Andrew Morgan2019-09-201-1/+1
| | | | | | | | | | | | | | | (#6074) Remove trailing slash ability from the password reset submit_token endpoint. Since we provide the link in an email, and have never sent it with a trailing slash, there's no point for us to accept them on the endpoint.
| | * Drop support for bind param on POST /account/3pid (MSC2290) (#6067)Andrew Morgan2019-09-201-4/+0
| | | | | | | | | As per [MSC2290](https://github.com/matrix-org/matrix-doc/pull/2290/files#diff-05cde9463e9209b701312b3baf2fb2ebR151), we're dropping the bind parameter from `/account/3pid`. This endpoint can now only be used for adding threepid's to the user's account on the homeserver.
| | * Use unstable prefix for 3PID unbind API (#6062)J. Ryan Stinnett2019-09-191-1/+1
| | |
| | * Remove POST method from password reset submit_token endpoint (#6056)Andrew Morgan2019-09-191-17/+0
| | | | | | | | | Removes the POST method from `/password_reset/<medium>/submit_token/` as it's only used by phone number verification which Synapse does not support yet.
| | * Add changelogAndrew Morgan2019-09-101-1/+1
| | |
| | * Use account_threepid_delegate for 3pid validationAndrew Morgan2019-09-101-1/+2
| | |
| * | Merge branch 'develop' into uhoreg/e2e_cross-signing_mergedHubert Chathi2019-09-073-165/+339
| |\|
* | | Merge branch 'develop' into cross-signing_sig_uploadHubert Chathi2019-09-073-165/+339
|\ \ \ | | |/ | |/|
| * | Apply suggestions from code reviewAndrew Morgan2019-09-062-2/+2
| | | | | | | | | Co-Authored-By: Erik Johnston <erik@matrix.org>
| * | Fix destructuring assumption bugAndrew Morgan2019-09-062-2/+2
| | |
| * | Allow Synapse to send registration emails + choose Synapse or an external ↵Andrew Morgan2019-09-063-159/+299
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | server to handle 3pid validation (#5987) This is a combination of a few different PRs, finally all being merged into `develop`: * #5875 * #5876 * #5868 (This one added the `/versions` flag but the flag itself was actually [backed out](https://github.com/matrix-org/synapse/commit/891afb57cbdf9867f2848341b29c75d6f35eef5a#diff-e591d42d30690ffb79f63bb726200891) in #5969. What's left is just giving /versions access to the config file, which could be useful in the future) * #5835 * #5969 * #5940 Clients should not actually use the new registration functionality until https://github.com/matrix-org/synapse/pull/5972 is merged. UPGRADE.rst, changelog entries and config file changes should all be reviewed closely before this PR is merged.
| * | Switch to using v2 Identity Service APIs other than lookup (MSC 2140) (#5892)Andrew Morgan2019-09-051-6/+7
| | |
| * | Add POST /_matrix/client/r0/account/3pid/unbind (MSC2140) (#5980)Andrew Morgan2019-09-051-0/+33
| | | | | | | | | Implements `POST /_matrix/client/r0/account/3pid/unbind` from [MSC2140](https://github.com/matrix-org/matrix-doc/blob/dbkr/tos_2/proposals/2140-terms-of-service-2.md#post-_matrixclientr0account3pidunbind).
* | | update with newer coding styleHubert Chathi2019-09-041-2/+2
| | |
* | | make black happyHubert Chathi2019-09-041-0/+1
| | |
* | | allow uploading signatures of master key signed by devicesHubert Chathi2019-09-041-1/+1
| | |
* | | implement device signature uploading/fetchingHubert Chathi2019-09-041-0/+50
| |/ |/|
* | Merge branch 'develop' into cross-signing_keysHubert Chathi2019-09-0420-98/+98
|\|
| * Remove bind_email and bind_msisdn (#5964)Andrew Morgan2019-09-041-2/+0
| | | | | | Removes the `bind_email` and `bind_msisdn` parameters from the `/register` C/S API endpoint as per [MSC2140: Terms of Service for ISes and IMs](https://github.com/matrix-org/matrix-doc/pull/2140/files#diff-c03a26de5ac40fb532de19cb7fc2aaf7R107).
| * Remove double return statements (#5962)Andrew Morgan2019-09-031-2/+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.
| * Opentrace device lists (#5853)Jorik Schellekens2019-09-032-2/+6
| | | | | | Trace device list changes.
| * Remove unnecessary parentheses around return statements (#5931)Andrew Morgan2019-08-3019-92/+92
| | | | | | | | | | 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 :)
* | Merge branch 'uhoreg/e2e_cross-signing_merged' into cross-signing_keysHubert Chathi2019-08-284-64/+35
|\|
| * Merge pull request #5877 from ↵Richard van der Hoff2019-08-221-53/+4
| |\ | | | | | | | | | | | | Awesome-Technologies/remove_shared_secret_registration Remove shared secret registration
| | * Remove shared secret registration from client/r0/register endpointManuel Stahl2019-08-221-53/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This type of registration was probably never used. It only includes the user name in the HMAC but not the password. Shared secret registration is still available via client/r0/admin/register. Signed-off-by: Manuel Stahl <manuel.stahl@awesome-technologies.de>
| * | Revert "Add "require_consent" parameter for registration"Brendan Abolivier2019-08-221-4/+1
| | | | | | | | | | | | This reverts commit 3320aaab3a9bba3f5872371aba7053b41af9d0a0.
| * | Add "require_consent" parameter for registrationHalf-Shot2019-08-221-1/+4
| | |
| * | Opentrace e2e keys (#5855)Jorik Schellekens2019-08-221-1/+12
| |/ | | | | Add opentracing tags and logs for e2e keys
| * Fix up password reset template config names (#5863)Andrew Morgan2019-08-151-2/+2
| | | | | | | | | | Fixes #5833 The emailconfig code was attempting to pull incorrect config file names. This corrects that, while also marking a difference between a config file variable that's a filepath versus a str containing HTML.
| * LintBrendan Abolivier2019-08-011-4/+2
| |
| * Allow defining HTML templates to serve the user on account renewalBrendan Abolivier2019-08-011-6/+17
| |
* | apply PR review suggestionsHubert Chathi2019-08-211-1/+1
| |
* | Merge branch 'cross-signing_hidden' into cross-signing_keysHubert Chathi2019-08-0123-153/+145
|\|
| * Merge tag 'v1.2.0rc2' into developAndrew Morgan2019-07-241-0/+2
| |\ | | | | | | | | | | | | | | | | | | Bugfixes -------- - Fix a regression introduced in v1.2.0rc1 which led to incorrect labels on some prometheus metrics. ([\#5734](https://github.com/matrix-org/synapse/issues/5734))
| | * Fix servlet metric names (#5734)Jorik Schellekens2019-07-241-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Fix servlet metric names Co-Authored-By: Richard van der Hoff <1389908+richvdh@users.noreply.github.com> * Remove redundant check * Cover all return paths
| * | Replace returnValue with return (#5736)Amber Brown2019-07-2323-153/+143
| |/
* / allow uploading keys for cross-signingHubert Chathi2019-07-251-3/+43
|/
* Remove the ability to query relations when the original event was redacted. ↵Andrew Morgan2019-07-181-32/+43
| | | | | | | (#5629) Fixes #5594 Forbid viewing relations on an event once it has been redacted.
* Don't bundle aggregations when retrieving the original event (#5654)Andrew Morgan2019-07-101-2/+12
| | | | | | | A fix for PR #5626, which returned the original event content as part of a call to /relations. Only problem was that we were attempting to aggregate the relations on top of it when we did so. We now set bundle_aggregations to False in the get_event call. We also do this when pulling the relation events as well, because edits of edits are not something we'd like to support here.
* Include the original event in /relations (#5626)Andrew Morgan2019-07-091-3/+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.
* Remove access-token support from RegistrationHandler.register (#5641)Richard van der Hoff2019-07-081-6/+5
| | | | | | | | Nothing uses this now, so we can remove the dead code, and clean up the API. Since we're changing the shape of the return value anyway, we take the opportunity to give the method a better name.
* Run Black. (#5482)Amber Brown2019-06-2024-509/+419
|
* Merge branch 'master' of github.com:matrix-org/synapse into developErik Johnston2019-06-111-4/+5
|\
| * Change password reset links to /_matrix.Erik Johnston2019-06-111-4/+5
| |
* | Don't warn user about password reset disabling through config code (#5387)Andrew Morgan2019-06-111-4/+15
| | | | | | | | | | | | | | Moves the warning about password resets being disabled to the point where a user actually tries to reset their password. Is this an appropriate place for it to happen? Also removed the disabling of msisdn password resets when you don't have an email config, as that just doesn't make sense. Also change the error a user receives upon disabled passwords to specify that only email-based password reset is disabled.
* | Merge pull request #5363 from ↵Brendan Abolivier2019-06-101-1/+1
|\ \ | |/ |/| | | | | 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-1/+1
| |
* | Add ability to perform password reset via email without trusting the ↵Andrew Morgan2019-06-061-5/+238
| | | | | | | | | | | | | | | | | | | | | | | | identity server (#5377) Sends password reset emails from the homeserver instead of proxying to the identity server. This is now the default behaviour for security reasons. If you wish to continue proxying password reset requests to the identity server you must now enable the email.trust_identity_server_for_password_resets option. This PR is a culmination of 3 smaller PRs which have each been separately reviewed: * #5308 * #5345 * #5368
* | Unify v1 and v2 REST client APIs (#5226)Amber Brown2019-06-0325-102/+104
| |
* | Merge pull request #5220 from matrix-org/erikj/dont_bundle_live_eventsErik Johnston2019-05-241-0/+3
|\ \ | | | | | | Don't bundle aggregations with events in /sync or /events or state queries
| * | 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.
* | | Add config option for setting homeserver's default room version (#5223)Andrew Morgan2019-05-231-2/+3
|/ / | | | | | | | | 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.
* | Merge pull request #5209 from matrix-org/erikj/reactions_baseErik Johnston2019-05-201-0/+338
|\ \ | | | | | | Land basic reaction and edit support.
| * | Move parsing of tokens out of storage layerErik Johnston2019-05-161-0/+19
| | |
| * | Check that event is visible in new APIsErik Johnston2019-05-161-2/+15
| | |
| * | Add aggregations APIErik Johnston2019-05-161-1/+140
| | |
| * | Actually implement idempotencyErik Johnston2019-05-151-1/+8
| | |
| * | Add simple pagination APIErik Johnston2019-05-151-0/+50
| | |
| * | Add simple send_relation API and track in DBErik Johnston2019-05-151-0/+110
| | |
* | | Merge pull request #5174 from matrix-org/dbkr/add_dummy_flow_to_recaptcha_onlyDavid Baker2019-05-161-5/+17
|\ \ \ | |_|/ |/| | Re-order registration stages to do msisdn & email auth last
| * | Re-order flows so that email auth is done lastDavid Baker2019-05-101-4/+12
| | | | | | | | | | | | | | | | | | It's more natural for the user if the bit that takes them away from the registration flow comes last. Adding the dummy stage allows us to do the stages in this order without the ambiguity.
| * | CommentDavid Baker2019-05-101-0/+4
| | |
| * | Add a DUMMY stage to captcha-only registration flowDavid Baker2019-05-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows the client to complete the email last which is more natual for the user. Without this stage, if the client would complete the recaptcha (and terms, if enabled) stages and then the registration request would complete because you've now completed a flow, even if you were intending to complete the flow that's the same except has email auth at the end. Adding a dummy auth stage to the recaptcha-only flow means it's always unambiguous which flow the client was trying to complete. Longer term we should think about changing the protocol so the client explicitly says which flow it's trying to complete. vector-im/riot-web#9586
* | | Merge pull request #5187 from ↵David Baker2019-05-161-18/+22
|\ \ \ | | | | | | | | | | | | | | | | matrix-org/dbkr/only_check_threepid_not_in_use_if_actually_registering Only check 3pids not in use when registering
| * | | Only check 3pids not in use when registeringDavid Baker2019-05-141-18/+22
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | We checked that 3pids were not already in use before we checked if we were going to return the account previously registered in the same UI auth session, in which case the 3pids will definitely be in use. https://github.com/vector-im/riot-web/issues/9586
* | | Make all the rate limiting options more consistent (#5181)Amber Brown2019-05-151-10/+13
| | |
* | | Drop support for v2_alpha API prefix (#5190)Richard van der Hoff2019-05-155-20/+15
| |/ |/|
* | NewsfileErik Johnston2019-05-141-6/+6
| |
* | Allow client event serialization to be asyncErik Johnston2019-05-142-29/+28
|/
* Revert 085ae346ace418e0fc043ac5f568f85ebf80038eDavid Baker2019-05-101-1/+1
| | | | Accidentally went straight to develop
* Add a DUMMY stage to captcha-only registration flowDavid Baker2019-05-101-1/+1
| | | | | | | | | | | | | | | | This allows the client to complete the email last which is more natual for the user. Without this stage, if the client would complete the recaptcha (and terms, if enabled) stages and then the registration request would complete because you've now completed a flow, even if you were intending to complete the flow that's the same except has email auth at the end. Adding a dummy auth stage to the recaptcha-only flow means it's always unambiguous which flow the client was trying to complete. Longer term we should think about changing the protocol so the client explicitly says which flow it's trying to complete. https://github.com/vector-im/riot-web/issues/9586
* Merge branch 'develop' of github.com:matrix-org/synapse into ↵Erik Johnston2019-04-174-9/+26
|\ | | | | | | babolivier/account_expiration
| * Merge pull request #5047 from matrix-org/babolivier/account_expirationBrendan Abolivier2019-04-171-0/+62
| |\ | | | | | | Send out emails with links to extend an account's validity period
| * \ Merge pull request #5071 from matrix-org/babolivier/3pid-checkBrendan Abolivier2019-04-171-0/+18
| |\ \ | | | | | | | | Make sure we're not registering the same 3pid twice
| | * | Make sure we're not registering the same 3pid twiceBrendan Abolivier2019-04-171-0/+18
| | | |
| * | | Merge pull request #4982 from matrix-org/erikj/msc1915Erik Johnston2019-04-031-2/+3
| |\ \ \ | | | | | | | | | | Implement MSC1915 - 3PID unbind APIs
| | * | | Add unbind API to /r0 as it is now stabalisedErik Johnston2019-04-011-1/+1
| | | | |
| | * | | Allowing specifying IS to use in unbind API.Erik Johnston2019-04-011-1/+2
| | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | By default the homeserver will use the identity server used during the binding of the 3PID to unbind the 3PID. However, we need to allow clients to explicitly ask the homeserver to unbind via a particular identity server, for the case where the 3PID was bound out of band from the homeserver. Implements MSC915.
| * / / Collect room-version variations into one place (#4969)Richard van der Hoff2019-04-012-7/+5
| |/ / | | | | | | | | | 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-1/+30
| |/ |/|
* | Send out emails with links to extend an account's validity periodBrendan Abolivier2019-04-171-0/+62
|/
* Add option to disable searching in the user dirErik Johnston2019-03-191-0/+6
| | | | We still populate it, as it can still be accessed via the admin API.
* Add ratelimiting on login (#4821)Brendan Abolivier2019-03-151-2/+2
| | | Add two ratelimiters on login (per-IP address and per-userID).
* Make registration ratelimiter separate from the main events oneBrendan Abolivier2019-03-061-1/+1
|
* Revert "Split ratelimiters in two (one for events, one for registration)"Brendan Abolivier2019-03-061-1/+1
| | | | This reverts commit d7dbad3526136cfc9fdbd568635be5016fb637db.
* Split ratelimiters in two (one for events, one for registration)Brendan Abolivier2019-03-051-1/+1
|
* Add rate-limiting on registration (#4735)Brendan Abolivier2019-03-051-4/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* switch from google.com to recaptcha.net for reCAPTCHA (#4731)Matthew Hodgson2019-02-251-1/+1
| | | | | | | | * add trivial clarification about jemalloc * switch from google.com to recaptcha.net because https://developers.google.com/recaptcha/docs/faq#can-i-use-recaptcha-globally
* Fix registration on workers (#4682)Erik Johnston2019-02-202-135/+12
| | | | | | | | | | * Move RegistrationHandler init to HomeServer * Move post registration actions to RegistrationHandler * Add post regisration replication endpoint * Newsfile
* Move register_device into handlerErik Johnston2019-02-181-47/+2
|
* Update docsErik Johnston2019-02-181-1/+1
|
* Split out registration to workerErik Johnston2019-02-181-27/+46
| | | | | | | | This allows registration to be handled by a worker, though the actual write to the database still happens on master. Note: due to the in-memory session map all registration requests must be handled by the same worker.
* Merge pull request #4580 from matrix-org/uhoreg/e2e_backup_add_updatingErik Johnston2019-02-111-0/+34
|\ | | | | add updating of backup versions
| * make sure version is in body and wrap in linearizer queueHubert Chathi2019-02-081-1/+2
| | | | | | | | also add tests
| * add new endpoint to update backup versionsHubert Chathi2019-02-061-0/+33
| |
* | Allow "unavailable" presence status for /sync (#4592)Valentin Anger2019-02-081-1/+1
|/ | | | | | | | | | * Allow "unavailable" presence status for /sync Closes #3772, closes #3779 Signed-off-by: Valentin Anger <valentin.an.1999@gmail.com> * Add changelog for PR 4592
* isortNeil Johnson2019-01-301-2/+1
|
* formatting and use constants where availableNeil Johnson2019-01-301-19/+17
|
* Populate default room version from ConstantsNeil Johnson2019-01-301-1/+2
|
* reflect that rooms v3 is a stable room versionNeil Johnson2019-01-301-0/+1
|
* rework format of change password capabilityNeil Johnson2019-01-291-1/+3
|
* support change_password in capabilities end-pointNeil Johnson2019-01-291-2/+12
|
* enforce auth for capabilities endpointNeil Johnson2019-01-291-10/+17
|
* backout v3Neil Johnson2019-01-251-1/+0
|
* Support room version capabilities in CS API (MSC1804)Neil Johnson2019-01-251-0/+49
|
* move guard out of is_threepid_reserved and into register.pyNeil Johnson2019-01-221-4/+5
|
* Fix None guard in config.server.is_threepid_reservedNeil Johnson2019-01-221-1/+3
|
* Config option to disable requesting MSISDN on registrationNeil Johnson2019-01-211-11/+5
|
* Add GET account data routes (#4303)Travis Ralston2019-01-071-1/+33
| | | | As per https://github.com/matrix-org/matrix-doc/issues/1339
* Neilj/fix autojoin (#4223)Neil Johnson2018-11-281-0/+1
| | | | | | * Fix auto join failures for servers that require user consent * Fix auto join failures for servers that require user consent
* Fix fallback auth on Python 3 (#4197)Amber Brown2018-11-191-22/+16
|
* Remove duplicate slashes in generated consent URLsTravis Ralston2018-11-151-2/+2
|
* Add config variables for enabling terms auth and the policy name (#4142)Travis Ralston2018-11-061-1/+1
| | | | So people can still collect consent the old way if they want to.
* handle empty backups according to latest spec proposal (#4123)Hubert Chathi2018-11-051-3/+18
| | | fixes #4056
* Include a version query string arg for the consent routeTravis Ralston2018-10-311-2/+4
|
* Merge branch 'develop' into travis/login-termsTravis Ralston2018-10-311-0/+89
|\
| * Address review commentsRichard van der Hoff2018-10-261-5/+16
| | | | | | | | Improve comments, get old room state from the context we already have
| * Basic initial support for room upgradesRichard van der Hoff2018-10-251-0/+78
| | | | | | | | | | Currently just creates a new, empty, room, and sends a tombstone in the old room.
* | Merge branch 'develop' into travis/login-termsTravis Ralston2018-10-241-1/+1
|\|
| * Fix a number of flake8 errorsRichard van der Hoff2018-10-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Broadly three things here: * disable W504 which seems a bit whacko * remove a bunch of `as e` expressions from exception handlers that don't use them * use `r""` for strings which include backslashes Also, we don't use pep8 any more, so we can get rid of the duplicate config there.
* | pep8Travis Ralston2018-10-152-13/+2
| |
* | Merge branch 'develop' into travis/login-termsTravis Ralston2018-10-151-0/+372
|\|
| * missed oneDavid Baker2018-10-121-0/+1
| |
| * Don't mangle exceptionsDavid Baker2018-10-121-4/+2
| |
| * Split /room_keys/version into 2 servletsDavid Baker2018-10-121-9/+21
| |
| * PR feedback pt. 1David Baker2018-10-121-1/+1
| |
| * isortDavid Baker2018-10-091-1/+1
| |
| * Merge remote-tracking branch 'origin/develop' into dbkr/e2e_backupsDavid Baker2018-10-094-23/+72
| |\