summary refs log tree commit diff
path: root/synapse/api/errors.py (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Implement knock feature (#6739)Sorunome2021-06-091-1/+1
| | | | | | This PR aims to implement the knock feature as proposed in https://github.com/matrix-org/matrix-doc/pull/2403 Signed-off-by: Sorunome mail@sorunome.de Signed-off-by: Andrew Morgan andrewm@element.io
* 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>`
* Update black, and run auto formatting over the codebase (#9381)Eric Eastwood2021-02-161-10/+11
| | | | | | | - 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
* Simplify super() calls to Python 3 syntax. (#8344)Patrick Cloke2020-09-181-27/+23
| | | | | | | This converts calls like super(Foo, self) -> super(). Generated with: sed -i "" -Ee 's/super\([^\(]+\)/super()/g' **/*.py
* Stop sub-classing object (#8249)Patrick Cloke2020-09-041-1/+1
|
* Stop shadow-banned users from sending invites. (#8095)Patrick Cloke2020-08-201-0/+8
|
* Be stricter about JSON that is accepted by Synapse (#8106)Patrick Cloke2020-08-191-3/+3
|
* Improve performance of the register endpoint (#8009)Patrick Cloke2020-08-061-1/+3
|
* Ensure that calls to `json.dumps` are compatible with the standard library ↵Patrick Cloke2020-07-151-1/+3
| | | | json. (#7836)
* Improve the type hints of synapse.api.errors. (#7820)Patrick Cloke2020-07-141-55/+73
|
* Do not use canonicaljson to magically handle decoding bytes from JSON. (#7802)Patrick Cloke2020-07-101-4/+2
|
* Replace all remaining six usage with native Python 3 equivalents (#7704)Dagfinn Ilmari Mannsåker2020-06-161-4/+3
|
* Replace iteritems/itervalues/iterkeys with native versions. (#7692)Patrick Cloke2020-06-151-2/+1
|
* Convert http.HTTPStatus objects to their int equivalent (#7188)Andrew Morgan2020-04-031-1/+8
|
* Allow server admins to define and enforce a password policy (MSC2000). (#7118)Dirk Klimpel2020-03-261-0/+21
|
* Validate the alt_aliases property of canonical alias events (#6971)Patrick Cloke2020-03-031-0/+1
|
* Add `get_room_version` methodRichard van der Hoff2020-01-311-4/+2
| | | | So that we can start factoring out some of this boilerplatey boilerplate.
* Implement RedirectException (#6687)Richard van der Hoff2020-01-151-1/+26
| | | | | Allow REST endpoint implemnentations to raise a RedirectException, which will redirect the user's browser to a given location.
* Kill off RegistrationError (#6691)Richard van der Hoff2020-01-131-6/+0
| | | This is pretty pointless. Let's just use SynapseError.
* Replace instance variations of homeserver with correct case/spacingAndrew Morgan2019-11-121-1/+1
|
* Merge branch 'develop' into uhoreg/e2e_cross-signing_mergedHubert Chathi2019-10-181-1/+2
|\
| * Fix up some typechecking (#6150)Amber Brown2019-10-021-1/+2
| | | | | | | | | | | | * type checking fixes * changelog
* | Merge branch 'uhoreg/e2e_cross-signing_merged' into cross-signing_keysHubert Chathi2019-08-281-1/+2
|\|
| * Change user deactivated errcode to USER_DEACTIVATED and use it (#5686)Andrew Morgan2019-07-311-1/+2
| | | | | | | | | | This is intended as an amendment to #5674 as using M_UNKNOWN as the errcode makes it hard for clients to differentiate between an invalid password and a deactivated user (the problem we were trying to solve in the first place). M_UNKNOWN was originally chosen as it was presumed than an MSC would have to be carried out to add a new code, but as Synapse often is the testing bed for new MSC implementations, it makes sense to try it out first in the wild and then add it into the spec if it is successful. Thus this PR return a new M_USER_DEACTIVATED code when a deactivated user attempts to login.
* | allow uploading keys for cross-signingHubert Chathi2019-07-251-0/+1
|/
* Return a different error from Invalid Password when a user is deactivated ↵Andrew Morgan2019-07-151-0/+16
| | | | | (#5674) Return `This account has been deactivated` instead of `Invalid password` when a user is deactivated.
* Implement access token expiry (#5660)Richard van der Hoff2019-07-121-1/+7
| | | | Record how long an access token is valid for, and raise a soft-logout once it expires.
* Clean up exception handling for access_tokens (#5656)Richard van der Hoff2019-07-111-1/+32
| | | | | | | | | | | | | | | | First of all, let's get rid of `TOKEN_NOT_FOUND_HTTP_STATUS`. It was a hack we did at one point when it was possible to return either a 403 or a 401 if the creds were missing. We always return a 401 in these cases now (thankfully), so it's not needed. Let's also stop abusing `AuthError` for these cases. Honestly they have nothing that relates them to the other places that `AuthError` is used, other than the fact that they are loosely under the 'Auth' banner. It makes no sense for them to share exception classes. Instead, let's add a couple of new exception classes: `InvalidClientTokenError` and `MissingClientTokenError`, for the `M_UNKNOWN_TOKEN` and `M_MISSING_TOKEN` cases respectively - and an `InvalidClientCredentialsError` base class for the two of them.
* Run Black. (#5482)Amber Brown2019-06-201-59/+53
|
* Add ability to perform password reset via email without trusting the ↵Andrew Morgan2019-06-061-0/+9
| | | | | | | | | | | | 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
* Fix error handling for rooms whose versions are unknown. (#5219)Richard van der Hoff2019-05-211-1/+15
| | | | | | | If we remove support for a particular room version, we should behave more gracefully. This should make client requests fail with a 400 rather than a 500, and will ignore individiual PDUs in a federation transaction, rather than the whole transaction.
* Remove periods from copyright headers (#5046)Andrew Morgan2019-04-111-1/+1
|
* Add account expiration featureBrendan Abolivier2019-04-091-0/+1
|
* Refactor request sending to have better excpetions (#4358)Erik Johnston2019-01-081-0/+18
| | | | | | | | | | | | | | * Correctly retry and back off if we get a HTTPerror response * Refactor request sending to have better excpetions MatrixFederationHttpClient blindly reraised exceptions to the caller without differentiating "expected" failures (e.g. connection timeouts etc) versus more severe problems (e.g. programming errors). This commit adds a RequestSendFailed exception that is raised when "expected" failures happen, allowing the TransactionQueue to log them as warnings while allowing us to log other exceptions as actual exceptions.
* PR feedback pt. 1David Baker2018-10-121-8/+0
|
* Fix mergefailDavid Baker2018-10-091-1/+1
|
* Merge remote-tracking branch 'origin/develop' into dbkr/e2e_backupsDavid Baker2018-10-091-3/+3
|\
| * Change admin_uri to admin_contact in config and errorsErik Johnston2018-08-241-3/+3
| |
* | try to make flake8 and isort happyHubert Chathi2018-09-061-0/+1
| |
* | Merge branch 'develop' into e2e_backupsHubert Chathi2018-08-241-2/+42
|\|
| * rename error codeNeil Johnson2018-08-181-2/+2
| |
| * add new error type ResourceLimitNeil Johnson2018-08-161-2/+21
| |
| * clean up AuthErrorNeil Johnson2018-08-151-7/+3
| |
| * update error codes for resource limitingNeil Johnson2018-08-151-2/+1
| |
| * replace admin_email with admin_uri for greater flexibilityNeil Johnson2018-08-151-2/+2
| |
| * support admin_email config and pass through into blocking errors, return ↵Neil Johnson2018-08-131-2/+11
| | | | | | | | AuthError in all cases
| * Revert "support admin_email config and pass through into blocking errors, ↵Neil Johnson2018-08-131-11/+2
| | | | | | | | | | | | return AuthError in all cases" This reverts commit 0d43f991a19840a224d3dac78d79f13d78212ee6.
| * support admin_email config and pass through into blocking errors, return ↵Neil Johnson2018-08-131-2/+11
| | | | | | | | AuthError in all cases
| * fix pep8 too many linesNeil Johnson2018-08-081-1/+0
| |
| * Merge branch 'develop' into neilj/disable_hsNeil Johnson2018-08-081-0/+25
| |\
| | * Enforce compatibility when processing make_join requestsRichard van der Hoff2018-08-031-0/+22
| | | | | | | | | | | | | | | | | | Reject make_join requests from servers which do not support the room version. Also include the room version in the response.
| | * Basic support for room versioningRichard van der Hoff2018-08-031-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | This is the first tranche of support for room versioning. It includes: * setting the default room version in the config file * new room_version param on the createRoom API * storing the version of newly-created rooms in the m.room.create event * fishing the version of existing rooms out of the m.room.create event
| * | disable HS from configNeil Johnson2018-08-041-0/+1
| |/
* | blindly incorporate PR review - needs testing & fixingMatthew Hodgson2018-08-121-3/+8
| |
* | implement /room_keys/version too (untested)Matthew Hodgson2018-08-121-0/+25
|/
* Merge pull request #3639 from matrix-org/rav/refactor_error_handlingRichard van der Hoff2018-08-021-53/+53
|\ | | | | Clean up handling of errors from outbound requests
| * Kill off MatrixCodeMessageExceptionRichard van der Hoff2018-08-011-11/+0
| | | | | | | | | | | | | | | | | | | | | | This code brings the SimpleHttpClient into line with the MatrixFederationHttpClient by having it raise HttpResponseExceptions when a request fails (rather than trying to parse for matrix errors and maybe raising MatrixCodeMessageException). Then, whenever we were checking for MatrixCodeMessageException and turning them into SynapseErrors, we now need to check for HttpResponseExceptions and call to_synapse_error.
| * Refactor code for turning HttpResponseException into SynapseErrorRichard van der Hoff2018-08-011-31/+53
| | | | | | | | | | | | | | | | This commit replaces SynapseError.from_http_response_exception with HttpResponseException.to_synapse_error. The new method actually returns a ProxiedRequestError, which allows us to pass through additional metadata from the API call.
| * Be more careful which errors we send back over the C-S APIRichard van der Hoff2018-08-011-11/+0
| | | | | | | | | | | | | | | | | | | | | | | | We really shouldn't be sending all CodeMessageExceptions back over the C-S API; it will include things like 401s which we shouldn't proxy. That means that we need to explicitly turn a few HttpResponseExceptions into SynapseErrors in the federation layer. The effect of the latter is that the matrix errcode will get passed through correctly to calling clients, which might help with some of the random M_UNKNOWN errors when trying to join rooms.
* | limit register and sign in on number of monthly usersNeil Johnson2018-07-301-0/+1
|/
* run isortAmber Brown2018-07-091-2/+2
|
* Attempt to be more performant on PyPy (#3462)Amber Brown2018-06-281-1/+2
|
* custom error code for not leaving server notices roomRichard van der Hoff2018-05-221-0/+1
|
* Reject attempts to send event before privacy consent is givenRichard van der Hoff2018-05-221-1/+29
| | | | | | Returns an M_CONSENT_NOT_GIVEN error (cf https://github.com/matrix-org/matrix-doc/issues/1252) if consent is not yet given.
* Use six.itervalues in some placesAdrian Tschira2018-04-151-1/+2
| | | | | | There's more where that came from Signed-off-by: Adrian Tschira <nota@notafile.com>
* Use simplejson throughoutRichard van der Hoff2018-03-291-1/+2
| | | | Let's use simplejson rather than json, for consistency.
* Add federation_domain_whitelist option (#2820)Matthew Hodgson2018-01-221-0/+26
| | | | | | Add federation_domain_whitelist gives a way to restrict which domains your HS is allowed to federate with. useful mainly for gracefully preventing a private but internet-connected HS from trying to federate to the wider public Matrix network
* add registrations_require_3pidMatthew Hodgson2018-01-191-0/+1
| | | | | lets homeservers specify a whitelist for 3PIDs that users are allowed to associate with. Typically useful for stopping people from registering with non-work emails
* Refactor UI auth implementationRichard van der Hoff2017-12-051-0/+16
| | | | | Instead of returning False when auth is incomplete, throw an exception which can be caught with a wrapper.
* Use CodeMessageException subclass insteadDavid Baker2017-04-251-0/+11
| | | | | Parse json errors from get_json client methods and throw special errors.
* Address review commentsRichard van der Hoff2017-03-141-5/+14
| | | | | | | - don't blindly proxy all HTTPRequestExceptions - log unexpected exceptions at error - avoid `isinstance` - improve docs on `from_http_response_exception`
* re-refactor exception heirarchyRichard van der Hoff2017-03-141-16/+14
| | | | | Give CodeMessageException back its `msg` attribute, and use that to hold the HTTP status message for HttpResponseException.
* Fix routing loop when fetching remote mediaRichard van der Hoff2017-03-131-7/+52
| | | | | | | | | | | When we proxy a media request to a remote server, add a query-param, which will tell the remote server to 404 if it doesn't recognise the server_name. This should fix a routing loop where the server keeps forwarding back to itself. Also improves the error handling on remote media fetches, so that we don't always return a rather obscure 502.
* Fail with a coherent error message if `/sync?filter=` is invalidKegan Dougal2016-11-211-0/+1
|
* Implement https://github.com/matrix-org/matrix-doc/pull/346/filesDavid Baker2016-07-081-0/+1
|
* requestToken updateDavid Baker2016-06-301-1/+2
| | | | | | Don't send requestToken request to untrusted ID servers Also correct the THREEPID_IN_USE error to add the M_ prefix. This is a backwards incomaptible change, but the only thing using this is the angular client which is now unmaintained, so it's probably better to just do this now.
* Revert "Merge two of the room join codepaths"Daniel Wagner-Hall2016-02-121-5/+0
| | | | | | This reverts commit cf81375b94c4763766440471e632fc4b103450ab. It subtly violates a guest joining auth check
* Merge two of the room join codepathsDaniel Wagner-Hall2016-02-121-0/+5
| | | | | | | | | | | | | There's at least one more to merge in. Side-effects: * Stop reporting None as displayname and avatar_url in some cases * Joining a room by alias populates guest-ness in join event * Remove unspec'd PUT version of /join/<room_id_or_alias> which has not been called on matrix.org according to logs * Stop recording access_token_id on /join/room_id - currently we don't record it on /join/room_alias; I can try to thread it through at some point.
* Require unbanning before other membership changesDaniel Wagner-Hall2016-01-151-0/+1
|
* M_INVALID_USERNAME to be consistent with the parameter nameDavid Baker2016-01-151-1/+1
|
* Add specific error code for invalid user names.David Baker2016-01-141-0/+1
|
* copyrightsMatthew Hodgson2016-01-071-1/+1
|
* Guest users must be joined to a room to see it in /syncMark Haines2016-01-061-16/+0
|
* Include the list of bad room ids in the errorMark Haines2015-12-221-0/+16
|
* Allow guests to register and call /events?room_id=Daniel Wagner-Hall2015-11-041-0/+1
| | | | | | | This follows the same flows-based flow as regular registration, but as the only implemented flow has no requirements, it auto-succeeds. In the future, other flows (e.g. captcha) may be required, so clients should treat this like the regular registration flow choices.
* Reject events which are too largeDaniel Wagner-Hall2015-10-221-0/+9
| | | | SPEC-222
* Remove log line that was generated whenever an error was created. We are now ↵Mark Haines2015-10-061-1/+0
| | | | creating error objects that aren't raised so it's probably a bit too confusing to keep
* synapse/api/errors.py:RoomError was unusedMark Haines2015-09-221-5/+0
|
* Add endpoint that proxies ID server request token and errors if the given ↵David Baker2015-08-041-0/+1
| | | | email is in use on this Home Server.
* Merge branch 'develop' into csauthDavid Baker2015-04-241-2/+2
|\ | | | | | | | | Conflicts: synapse/http/server.py
| * No commas here, otherwise our error string constants become tuples.David Baker2015-04-241-2/+2
| |
* | Dedicated error code for failed 3pid auth verificationDavid Baker2015-04-231-0/+1
| |
* | Add an error code to 'missing token' response.David Baker2015-04-231-0/+1
|/
* Grant ASes the ability to create alias in their own namespace.Kegan Dougal2015-02-061-1/+2
| | | | | | Add a new errcode type M_EXCLUSIVE when users try to create aliases inside AS namespaces, and when ASes try to create aliases outside their own namespace.
* Apply sanity to the transport client interface. Convert 'make_join' and ↵Erik Johnston2015-02-041-1/+7
| | | | 'send_join' to accept iterables of destinations
* Code style fixes.Mark Haines2015-01-291-0/+1
|
* Add slightly pedantic trailing slash error.David Baker2015-01-231-1/+6
|
* right super() paramDavid Baker2015-01-231-1/+1
|
* As yet fairly untested GET API for push rulesDavid Baker2015-01-221-1/+13
|
* Oops: second part of commit dc938606David Baker2015-01-221-0/+12
|
* Merge branch 'develop' into pushersDavid Baker2015-01-131-1/+1
|\
| * Update copyright noticesMark Haines2015-01-061-1/+1
| |
* | Merge branch 'develop' into pushersDavid Baker2014-12-181-1/+2
|\| | | | | | | | | | | | | Conflicts: synapse/api/errors.py synapse/server.py synapse/storage/__init__.py
| * Limit the size of images that are thumbnailed serverside. Limit the size of ↵Mark Haines2014-12-111-0/+1
| | | | | | | | file that a server will download from a remote server
* | Merge branch 'develop' into pushersDavid Baker2014-11-201-2/+5
|\|
| * Use module loggers rather than the root logger. Exceptions caused by bad ↵Mark Haines2014-11-201-2/+5
| | | | | | | | clients shouldn't cause ERROR level logging. Fix sql logging to use 'repr' rather than 'str'
* | Start creating a module to do generic notifications (just prints them to ↵David Baker2014-11-191-0/+1
|/ | | | stdout currently!)
* Move FederationError to synapse.api.errorsErik Johnston2014-11-041-0/+34
|
* Fix pep8 warningsMark Haines2014-10-301-1/+3
|
* Respond with more helpful error messages for unsigned requestsMark Haines2014-10-131-0/+1
|
* Captchas now work on registration. Missing x-forwarded-for config arg ↵Kegan Dougal2014-09-051-1/+15
| | | | support. Missing reloading a new captcha on the web client / displaying a sensible error message.
* Added a captcha config to the HS, to enable registration captcha checking ↵Kegan Dougal2014-09-051-0/+1
| | | | and for the recaptcha private key.
* 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.
* Set status message for ratelimit error responsesMark Haines2014-09-031-0/+2
|
* Raise LimitExceedError when the ratelimiting is throttling requestsMark Haines2014-09-031-7/+27
|
* Add ratelimiting function to basehandlerMark Haines2014-09-021-0/+1
|
* Added M_UNKNOWN_TOKEN error code and send it when there is an unrecognised ↵Kegan Dougal2014-08-141-0/+1
| | | | access_token
* Default error code BAD_PAGINATION for EventStreamErrorsKegan Dougal2014-08-141-1/+4
|
* add in whitespace after copyright statements to improve legibilityMatthew Hodgson2014-08-131-0/+1
|
* Reference Matrix Home Servermatrix.org2014-08-121-0/+114