summary refs log tree commit diff
path: root/synapse/rest (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Add ratelimiting on login (#4821)Brendan Abolivier2019-03-152-2/+12
| | | Add two ratelimiters on login (per-IP address and per-userID).
* fix incorrect encoding of filenames with spaces in (#2090)Matthew Hodgson2019-03-111-3/+51
| | | | fixes https://github.com/vector-im/riot-web/issues/3155
* Send message after room has been shutdownErik Johnston2019-03-061-11/+11
| | | | | | | | Currently the explanation message is sent to the abuse room before any users are forced joined, which means it tends to get lost in the backlog of joins. So instead we send the message *after* we've forced joined everyone.
* 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
|
* Merge pull request #4772 from jbweston/jbweston/server-version-apiErik Johnston2019-03-051-0/+23
|\ | | | | Add 'server_version' endpoint to admin API
| * Add 'server_version' endpoint to admin APIJoseph Weston2019-03-011-0/+23
| | | | | | | | | | This is required because the 'Server' HTTP header is not always passed through proxies.
* | 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
* Fix parsing of Content-Disposition headers (#4763)Richard van der Hoff2019-02-271-20/+65
| | | | | | | | | | | * Fix parsing of Content-Disposition headers TIL: filenames in content-dispostion headers can contain semicolons, and aren't %-encoded. * fix python2 incompatibility * Fix docstrings
* Don't log stack trace when client has gone away during media download (#4738)Erik Johnston2019-02-251-2/+9
| | | | | | | | * Don't log stack trace when client has gone away during media download * Newsfile * Fixup newsfile
* 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-204-138/+15
| | | | | | | | | | * Move RegistrationHandler init to HomeServer * Move post registration actions to RegistrationHandler * Add post regisration replication endpoint * Newsfile
* Merge pull request #4666 from matrix-org/erikj/register_login_splitErik Johnston2019-02-182-69/+28
|\ | | | | Split out registration to worker
| * Move register_device into handlerErik Johnston2019-02-182-84/+24
| |
| * 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.
* | FixupErik Johnston2019-02-181-0/+1
| |
* | fix missig importMatthew Hodgson2019-02-181-0/+1
| |
* | tabsMatthew Hodgson2019-02-141-1/+1
| |
* | set CORS on .well-known URI to unbreak modularMatthew Hodgson2019-02-141-0/+1
|/ | | | | otherwise a riot/web running on foo.riot.im can't query the .well-known on foo.modular.im...
* 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-082-1/+2
|/ | | | | | | | | | * 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
* Merge branch 'neilj/room_capabilities' of github.com:matrix-org/synapse into ↵Neil Johnson2019-01-302-14/+5
|\ | | | | | | neilj/room_capabilities
| * Merge branch 'develop' into neilj/room_capabilitiesNeil Johnson2019-01-302-14/+5
| |\
| | * Check consent dir path on startupAndrew Morgan2019-01-291-10/+1
| | |
| | * Merge branch 'develop' of github.com:matrix-org/synapse into ↵Andrew Morgan2019-01-251-13/+10
| | |\ | | | | | | | | | | | | anoa/dm_room_upgrade
| | * | Fix typosAndrew Morgan2019-01-221-4/+4
| | | |
* | | | 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
| | |
* | | register capabilities servletNeil Johnson2019-01-291-0/+2
| | |
* | | 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
|/
* Refactor request sending to have better excpetions (#4358)Erik Johnston2019-01-081-3/+4
| | | | | | | | | | | | | | * 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.
* Add GET account data routes (#4303)Travis Ralston2019-01-071-1/+33
| | | | As per https://github.com/matrix-org/matrix-doc/issues/1339
* Remove v1 only REST APIs now we don't ship matrix console (#4334)Amber Brown2018-12-294-445/+0
|
* Return well_known in /login response (#4319)Richard van der Hoff2018-12-241-7/+11
| | | | ... as per MSC1730.
* Fix IP URL previews on Python 3 (#4215)Amber Brown2018-12-221-2/+12
|
* create support user (#4141)Neil Johnson2018-12-141-1/+10
| | | | | | Allow for the creation of a support user. A support user can access the server, join rooms, interact with other users, but does not appear in the user directory nor does it contribute to monthly active user limits.
* Add 'sandbox' to CSP for media repo (#4284)David Baker2018-12-111-1/+2
| | | | | | * Add 'sandbox' to the CSP for media repo * Changelog
* Move imports to one lineWill Hunt2018-12-101-4/+1
|
* Use `send_cors`Will Hunt2018-12-101-4/+1
|
* changelog & isortWill Hunt2018-12-091-1/+5
|
* Make /config more CORS-yWill Hunt2018-12-091-1/+3
|
* Initialise user displayname from SAML2 data (#4272)Richard van der Hoff2018-12-072-0/+8
| | | | | When we register a new user from SAML2 data, initialise their displayname correctly.
* Implement SAML2 authentication (#4267)Richard van der Hoff2018-12-073-0/+136
| | | | | | | | | | | This implements both a SAML2 metadata endpoint (at `/_matrix/saml2/metadata.xml`), and a SAML2 response receiver (at `/_matrix/saml2/authn_response`). If the SAML2 response matches what's been configured, we complete the SSO login flow by redirecting to the client url (aka `RelayState` in SAML2 jargon) with a login token. What we don't yet have is anything to build a SAML2 request and redirect the user to the identity provider. That is left as an exercise for the reader.
* Factor SSO success handling out of CAS login (#4264)Richard van der Hoff2018-12-071-29/+76
| | | | This is mostly factoring out the post-CAS-login code to somewhere we can reuse it for other SSO flows, but it also fixes the userid mapping while we're at it.
* Rip out half-implemented m.login.saml2 support (#4265)Richard van der Hoff2018-12-061-67/+2
| | | | | | | | | | | | | * Rip out half-implemented m.login.saml2 support This was implemented in an odd way that left most of the work to the client, in a way that I really didn't understand. It's going to be a pain to maintain, so let's start by ripping it out. * drop undocumented dependency on dateutil It turns out we were relying on dateutil being pulled in transitively by pysaml2. There's no need for that bloat.
* Implement .well-known handling (#4262)Richard van der Hoff2018-12-051-0/+70
| | | | Sometimes it's useful for synapse to generate its own .well-known file.
* Fix non-ASCII pushrules (#4248)Amber Brown2018-12-041-12/+23
|
* fix type errorAmber Brown2018-12-031-1/+1
|
* Neilj/fix autojoin (#4223)Neil Johnson2018-11-282-0/+3
| | | | | | * Fix auto join failures for servers that require user consent * Fix auto join failures for servers that require user consent
* Support m.login.sso (#4220)Richard van der Hoff2018-11-271-4/+9
| | | | | | | | | | | | | | | | | * Clean up the CSS for the fallback login form I was finding this hard to work with, so simplify a bunch of things. Each flow is now a form inside a div of class login_flow. The login_flow class now has a fixed width, as that looks much better than each flow having a differnt width. * Support m.login.sso MSC1721 renames m.login.cas to m.login.sso. This implements the change (retaining support for m.login.cas for older clients). * changelog
* 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
|
* Fix Content-Disposition in media repository (#4176)Amber Brown2018-11-153-90/+110
|
* Use <meta> tags to discover the per-page encoding of html previews (#4183)Amber Brown2018-11-151-9/+22
|
* Add a test for the public T&Cs formRichard van der Hoff2018-11-141-1/+1
|
* Fix an internal server error when viewing the public privacy policyRichard van der Hoff2018-11-141-4/+7
|
* Fix encoding error for consent form on python3hera2018-11-081-1/+3
| | | | | | The form was rendering this as "b'01234....'". -- richvdh
* Fix URL preview bugs (type error when loading cache from db, content-type ↵Amber Brown2018-11-081-6/+16
| | | | including quotes) (#4157)
* Add config variables for enabling terms auth and the policy name (#4142)Travis Ralston2018-11-062-2/+2
| | | | 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
* Tests for user consent resource (#4140)Amber Brown2018-11-061-1/+1
|
* Fix logic error that prevented guests from seeing the privacy policyTravis Ralston2018-11-011-1/+1
|
* Include a version query string arg for the consent routeTravis Ralston2018-10-311-2/+4
|
* Merge branch 'develop' into travis/login-termsTravis Ralston2018-10-317-177/+93
|\
| * Remove deprecated v1 key exchange endpoint (#4119)Amber Brown2018-10-312-106/+0
| |
| * Delete the disused & unspecced identicon functionality (#4106)Amber Brown2018-10-292-70/+0
| |
| * 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-252-0/+80
| | | | | | | | | | Currently just creates a new, empty, room, and sends a tombstone in the old room.
| * Refactor state group lookup to reduce DB hits (#4011)Erik Johnston2018-10-251-1/+2
| | | | | | | | | | | | | | | | Currently when fetching state groups from the data store we make two hits two the database: once for members and once for non-members (unless request is filtered to one or the other). This adds needless load to the datbase, so this PR refactors the lookup to make only a single database hit.
* | Merge branch 'develop' into travis/login-termsTravis Ralston2018-10-246-49/+30
|\|
| * Fix a number of flake8 errorsRichard van der Hoff2018-10-242-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | 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.
| * Merge pull request #4063 from matrix-org/erikj/cleaup_alias_creationErik Johnston2018-10-241-32/+5
| |\ | | | | | | Clean up room alias creation
| | * Clean up room alias creationErik Johnston2018-10-191-32/+5
| | |
| * | Correctly account for cpu usage by background threads (#4074)Richard van der Hoff2018-10-233-15/+23
| |/ | | | | | | | | | | | | | | | | | | Wrap calls to deferToThread() in a thing which uses a child logcontext to attribute CPU usage to the right request. While we're in the area, remove the logcontext_tracer stuff, which is never used, and afaik doesn't work. Fixes #4064
* | Merge branch 'develop' into travis/login-termsTravis Ralston2018-10-181-2/+5
|\|
| * Fix bug where we raised StopIteration in a generatorErik Johnston2018-10-171-2/+5
| | | | | | | | This made python 3.7 unhappy
* | pep8Travis Ralston2018-10-152-13/+2
| |
* | Merge branch 'develop' into travis/login-termsTravis Ralston2018-10-152-0/+374
|\|
| * 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-0921-123/+197
| |\
| * | WIP e2e key backupsDavid Baker2018-09-131-4/+10
| | | | | | | | | | | | | | | | | | | | | Continues from uhoreg's branch This just fixed the errcode on /room_keys/version if no backup and updates the schema delta to be on the latest so it gets run
| * | try to make flake8 and isort happyHubert Chathi2018-09-061-1/+4
| | |
| * | Merge branch 'develop' into e2e_backupsHubert Chathi2018-08-2413-79/+143
| |\ \
| * | | missing importMatthew Hodgson2018-08-121-1/+1
| | | |
| * | | use parse_stringMatthew Hodgson2018-08-121-3/+3
| | | |
| * | | support DELETE /version with no argsMatthew Hodgson2018-08-121-2/+3
| | | |
| * | | implement remaining tests and make them workMatthew Hodgson2018-08-121-0/+6
| | | |
| * | | improve docstringMatthew Hodgson2018-08-121-1/+5
| | | |
| * | | add a tonne of docstring; make upload_room_keys properly assert versionMatthew Hodgson2018-08-121-1/+10
| | | |
| * | | more docstring for the e2e_room_keys restMatthew Hodgson2018-08-121-0/+51
| | | |
| * | | blindly incorporate PR review - needs testing & fixingMatthew Hodgson2018-08-121-0/+2
| | | |
| * | | make /room_keys/version workMatthew Hodgson2018-08-121-1/+8
| | | |
| * | | implement /room_keys/version too (untested)Matthew Hodgson2018-08-121-0/+47
| | | |
| * | | document the APIMatthew Hodgson2018-08-121-0/+133
| | | |
| * | | make it work and fix pep8Matthew Hodgson2018-08-122-13/+22
| | | |
| * | | interim WIP checkin; doesn't build yetMatthew Hodgson2018-08-121-4/+33
| | | |
| * | | total WIP skeleton for /room_keys APIMatthew Hodgson2018-08-121-0/+56
| | | |
* | | | Rely on the lack of ?u to represent public accessTravis Ralston2018-10-122-10/+6
| | | | | | | | | | | | also general cleanup
* | | | Use a flag rather than a new route for the public policyTravis Ralston2018-10-032-16/+24
| | | | | | | | | | | | This also means that the template now has optional parameters, which will need to be documented somehow.
* | | | Auto-consent to the privacy policy if the user registered with termsTravis Ralston2018-10-031-0/+6
| | | |
* | | | Make the terms flow requriedTravis Ralston2018-10-031-4/+4
| | | |
* | | | Flesh out the fallback auth for termsTravis Ralston2018-10-031-7/+67
| | | |
* | | | Incorporate Dave's work for GDPR login flowsTravis Ralston2018-10-032-0/+35
| |_|/ |/| | | | | As per https://github.com/vector-im/riot-web/issues/7168#issuecomment-419996117
* | | Merge pull request #3932 from matrix-org/erikj/auto_start_expiring_cachesRichard van der Hoff2018-09-251-1/+0
|\ \ \ | | | | | | | | Fix some instances of ExpiringCache not expiring cache items
| * | | Fix some instances of ExpiringCache not expiring cache itemsErik Johnston2018-09-211-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ExpiringCache required that `start()` be called before it would actually start expiring entries. A number of places didn't do that. This PR removes `start` from ExpiringCache, and automatically starts backround reaping process on creation instead.
* | | | added "media-src: 'self'" to CSP for resources (#3578)Jérémy Farnaud2018-09-251-0/+1
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Synapse doesn’t allow for media resources to be played directly from Chrome. It is a problem for users on other networks (e.g. IRC) communicating with Matrix users through a gateway. The gateway sends them the raw URL for the resource when a Matrix user uploads a video and the video cannot be played directly in Chrome using that URL. Chrome argues it is not authorized to play the video because of the Content Security Policy. Chrome checks for the "media-src" policy which is missing, and defauts to the "default-src" policy which is "none". As Synapse already sends "object-src: 'self'" I thought it wouldn’t be a problem to add "media-src: 'self'" to the CSP to fix this problem.
* | | Merge pull request #3835 from krombel/fix_3821Amber Brown2018-09-121-1/+5
|\ \ \ | | | | | | | | fix VOIP crashes under Python 3
| * | | fix VOIP crashes under Python 3 (#3821)Krombel2018-09-101-1/+5
| | | |
* | | | Port rest/ to Python 3 (#3823)Amber Brown2018-09-1217-100/+112
|/ / /
* | | Merge pull request #3790 from matrix-org/rav/respect_event_format_in_filterRichard van der Hoff2018-09-051-13/+38
|\ \ \ | | | | | | | | Implement 'event_format' filter param in /sync
| * | | Implement 'event_format' filter param in /syncRichard van der Hoff2018-09-041-13/+38
| | | | | | | | | | | | | | | | | | | | This has been specced and part-implemented; let's implement it for /sync (but no other endpoints yet :/).
* | | | improve human readable error messageNeil Johnson2018-09-041-1/+2
| | | |
* | | | improve human readable error messagesNeil Johnson2018-09-042-7/+20
|/ / /
* | | move threepid checker to config, add missing yieldsNeil Johnson2018-08-312-5/+7
| | |
* | | ensure post registration auth checks do not fail erroneouslyNeil Johnson2018-08-312-0/+8
| | |
* | | fix bug where preserved threepid user comes to sign up and server is mau blockedNeil Johnson2018-08-312-1/+10
| |/ |/|
* | Merge pull request #3724 from Half-Shot/hs/guest-fetch-eventErik Johnston2018-08-221-1/+1
|\ \ | | | | | | Allow guests to use /rooms/:roomId/event/:eventId
| * | Allow guests to access /rooms/:roomId/event/:eventIdWill Hunt2018-08-201-1/+1
| | |
* | | fix another consent encoding failRichard van der Hoff2018-08-211-1/+1
| | |
* | | Fix 500 error from /consent formRichard van der Hoff2018-08-211-2/+11
|/ / | | | | | | Fixes #3731
* | Port over enough to get some sytests running on Python 3 (#3668)Amber Brown2018-08-202-6/+6
| |
* | Integrate presence from hotfixes (#3694)Amber Brown2018-08-181-1/+2
| |
* | Remove v1/register's broken shared secret functionality (#3703)Amber Brown2018-08-181-54/+0
| |
* | Add GET media/v1/config (#3184)Will Hunt2018-08-162-1/+50
| |
* | lazyload aware /messages (#3589)Matthew Hodgson2018-08-161-1/+12
| |
* | initial cut at a room summary API (#3574)Matthew Hodgson2018-08-161-0/+1
| |
* | speed up /members and add at= and membership params (#3568)Matthew Hodgson2018-08-151-3/+29
| |
* | Merge pull request #3667 from matrix-org/erikj/fixup_unbindErik Johnston2018-08-152-6/+27
|\ \ | | | | | | Don't fail requests to unbind 3pids for non supporting ID servers
| * | Don't fail requests to unbind 3pids for non supporting ID serversErik Johnston2018-08-082-6/+27
| |/ | | | | | | | | | | | | | | | | | | Older identity servers may not support the unbind 3pid request, so we shouldn't fail the requests if we received one of 400/404/501. The request still fails if we receive e.g. 500 responses, allowing clients to retry requests on transient identity server errors that otherwise do support the API. Fixes #3661
* / Rename async to async_helpers because `async` is a keyword on Python 3.7 (#3678)Amber Brown2018-08-103-3/+3
|/
* Merge pull request #3639 from matrix-org/rav/refactor_error_handlingRichard van der Hoff2018-08-021-1/+1
|\ | | | | Clean up handling of errors from outbound requests
| * Refactor code for turning HttpResponseException into SynapseErrorRichard van der Hoff2018-08-011-1/+1
| | | | | | | | | | | | | | | | 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.
* | Merge branch 'master' into developRichard van der Hoff2018-08-022-2/+2
|\ \
| * | Check room visibility for /event/ requestsRichard van der Hoff2018-08-022-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | Make sure that the user has permission to view the requeseted event for /event/{eventId} and /room/{roomId}/event/{eventId} requests. Also check that the event is in the given room for /room/{roomId}/event/{eventId}, for sanity.
* | | Merge pull request #3620 from fuzzmz/return-404-room-not-foundRichard van der Hoff2018-08-011-2/+2
|\ \ \ | |_|/ |/| | return 404 if room not found
| * | return NotFoundError if room not foundSerban Constantin2018-07-311-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Per the Client-Server API[0] we should return `M_NOT_FOUND` if the room isn't found instead of generic SynapseError. This ensures that /directory/list API returns 404 for room not found instead of 400. [0]: https://matrix.org/docs/spec/client_server/unstable.html#get-matrix-client-r0-directory-list-room-roomid Signed-off-by: Serban Constantin <serban.constantin@gmail.com>
* | | Python 3: Convert some unicode/bytes uses (#3569)Amber Brown2018-08-023-14/+22
|/ /
* | make /context lazyload & filter aware (#3567)Matthew Hodgson2018-07-271-0/+9
| | | | | | make /context lazyload & filter aware.
* | Fix some looping_call calls which were broken in #3604Richard van der Hoff2018-07-262-2/+2
| | | | | | | | | | | | | | | | | | It turns out that looping_call does check the deferred returned by its callback, and (at least in the case of client_ips), we were relying on this, and I broke it in #3604. Update run_as_background_process to return the deferred, and make sure we return it to clock.looping_call.
* | Wrap a number of things that run in the backgroundRichard van der Hoff2018-07-252-2/+14
| | | | | | | | | | This will reduce the number of "Starting db connection from sentinel context" warnings, and will help with our metrics.
* | Merge branch 'develop' of github.com:matrix-org/synapse into ↵Erik Johnston2018-07-236-13/+206
|\ \ | | | | | | | | | erikj/client_apis_move
| * | Admin API for creating new users (#3415)Amber Brown2018-07-201-0/+122
| | |
| * | Move v1-only APIs into their own module & isolate deprecated ones (#3460)Amber Brown2018-07-195-13/+84
| |/
* | Move RoomContextHandler out of HandlersErik Johnston2018-07-181-2/+2
| | | | | | | | This is in preparation for moving GET /context/ to a worker
* | Split MessageHandler into read only and writersErik Johnston2018-07-182-15/+13
|/ | | | | This will let us call the read only parts from workers, and so be able to move some APIs off of master, e.g. the `/state` API.
* Refactor REST API tests to use explicit reactors (#3351)Amber Brown2018-07-171-1/+1
|
* rerun isort with latest versionKrombel2018-07-161-13/+3
|
* check isort by travisKrombel2018-07-165-9/+19
|
* Fix develop because I broke it :( (#3535)Amber Brown2018-07-141-2/+2
|
* Merge pull request #3534 from krombel/use_parse_and_asserts_from_servletAmber Brown2018-07-1414-139/+92
|\ | | | | Use parse and asserts from http.servlet
| * fix sytestsAmber Brown2018-07-141-1/+1
| |
| * add changelogKrombel2018-07-131-1/+1
| |
| * rename assert_params_in_request to assert_params_in_dictKrombel2018-07-139-30/+30
| | | | | | | | | | | | the method "assert_params_in_request" does handle dicts and not requests. A request body has to be parsed to json before this method can be used
| * Use parse_{int,str} and assert from http.servletKrombel2018-07-1313-132/+85
| | | | | | | | | | | | | | parse_integer and parse_string can take a request and raise errors in case we have wrong or missing params. This PR tries to use them more to deduplicate some code and make it better readable
* | Make auth & transactions more testable (#3499)Amber Brown2018-07-147-35/+31
|/
* Merge branch 'develop' into rav/enforce_report_apiRichard van der Hoff2018-07-1251-339/+338
|\
| * run isortAmber Brown2018-07-0950-307/+288
| |
| * Attempt to be more performant on PyPy (#3462)Amber Brown2018-06-285-5/+8
| |
| * update doc for deactivate APIMatthew Hodgson2018-06-261-1/+1
| |
| * add GDPR erase param to deactivate APIMatthew Hodgson2018-06-261-1/+12
| |
| * Revert "Revert "Merge pull request #3431 from ↵Erik Johnston2018-06-252-3/+14
| | | | | | | | | | | | matrix-org/rav/erasure_visibility"" This reverts commit 1d009013b3c3e814177afc59f066e02a202b21cd.
| * Revert "Merge pull request #3431 from matrix-org/rav/erasure_visibility"Richard van der Hoff2018-06-222-14/+3
| | | | | | | | | | This reverts commit ce0d911156b355c5bf452120bfb08653dad96497, reversing changes made to b4a5d767a94f1680d07edfd583aae54ce422573e.
| * Merge pull request #3431 from matrix-org/rav/erasure_visibilityErik Johnston2018-06-222-3/+14
| |\ | | | | | | Support hiding events from deleted users
| | * mark accounts as erased when requestedRichard van der Hoff2018-06-122-3/+14
| | |
| * | Pass around the reactor explicitly (#3385)Amber Brown2018-06-222-3/+7
| | |
| * | Remove run_on_reactor (#3395)Amber Brown2018-06-143-17/+0
| |/
| * Merge pull request #3276 from matrix-org/dbkr/unbindDavid Baker2018-06-111-3/+10
| |\ | | | | | | Remove email addresses / phone numbers from ID servers when they're removed from synapse
| | * Merge remote-tracking branch 'origin/develop' into dbkr/unbindDavid Baker2018-05-241-3/+5
| | |\
| | * | pep8David Baker2018-05-241-1/+1
| | | |
| | * | Unbind 3pids when they're deleted tooDavid Baker2018-05-241-3/+10
| | | |
| * | | fix logRichard van der Hoff2018-06-071-1/+1
| | | |
| * | | Fix event-purge-by-ts admin APIRichard van der Hoff2018-06-071-6/+4
| | | | | | | | | | | | | | | | | | | | | | | | This got completely broken in 0.30. Fixes #3300.
| * | | Consistently use six's iteritems and wrap lazy keys/values in list() if ↵Amber Brown2018-05-311-1/+1
| | | | | | | | | | | | | | | | they're not meant to be lazy (#3307)
* | | | Enforce the specified API for report_eventRichard van der Hoff2018-05-311-2/+23
|/ / / | | | | | | | | | | | | as per https://matrix.org/docs/spec/client_server/unstable.html#post-matrix-client-r0-rooms-roomid-report-eventid
* | | Merge pull request #3244 from NotAFile/py3-six-4Amber Brown2018-05-241-1/+2
|\ \ \ | | | | | | | | replace some iteritems with six
| * | | replace some iteritems with sixAdrian Tschira2018-05-191-1/+2
| | | | | | | | | | | | | | | | Signed-off-by: Adrian Tschira <nota@notafile.com>
* | | | Merge pull request #3247 from NotAFile/py3-miscAmber Brown2018-05-241-3/+5
|\ \ \ \ | |_|_|/ |/| | | Misc Python3 fixes
| * | | py3-ize url previewAdrian Tschira2018-05-191-3/+5
| |/ /
* | | Merge pull request #3243 from NotAFile/py3-six-3Erik Johnston2018-05-241-3/+5
|\ \ \ | |_|/ |/| | Replace some more comparisons with six
| * | Replace some more comparisons with sixAdrian Tschira2018-05-191-3/+5
| |/ | | | | | | | | | | plus a bonus b"" string I missed last time Signed-off-by: Adrian Tschira <nota@notafile.com>
* | Add a 'has_consented' template var to consent formsRichard van der Hoff2018-05-221-3/+14
| | | | | | | | fixes #3260
* | Enable auto-escaping for the consent templatesRichard van der Hoff2018-05-221-1/+4
| | | | | | | | ... to reduce the risk of somebody introducing an html injection attack...
* | Stub out ServerNoticesSender on the workersRichard van der Hoff2018-05-221-0/+4
| | | | | | | | | | ... and have the sync endpoints call it directly rather than obsure indirection via PresenceHandler
* | Move consent config parsing into ConsentConfigRichard van der Hoff2018-05-221-5/+3
| | | | | | | | turns out we need to reuse this, so it's better in the config class.
* | Rename 'version' param on user consent configRichard van der Hoff2018-05-221-1/+1
| | | | | | | | we're going to use it for the version we require too.
* | Fix logcontext leak in HttpTransactionCacheRichard van der Hoff2018-05-211-25/+21
| | | | | | | | ONE DAY I WILL PURGE THE WORLD OF THIS EVIL
* | Stop the transaction cache caching failuresRichard van der Hoff2018-05-211-9/+13
|/ | | | | | The transaction cache has some code which tries to stop it caching failures, but if the callback function failed straight away, then things would happen backwards and we'd end up with the failure stuck in the cache.
* Merge pull request #3221 from matrix-org/erikj/purge_tokenErik Johnston2018-05-181-7/+10
|\ | | | | Make purge_history operate on tokens
| * Make purge_history operate on tokensErik Johnston2018-05-151-7/+10
| | | | | | | | As we're soon going to change how topological_ordering works
* | Move RoomCreationHandler out of synapse.handlers.HandlersRichard van der Hoff2018-05-172-5/+4
| | | | | | | | | | | | | | Handlers is deprecated nowadays, so let's move this out before I add a new dependency on it. Also fix the docstrings on create_room.
* | Merge pull request #3213 from matrix-org/rav/consent_handlerRichard van der Hoff2018-05-162-0/+210
|\ \ | |/ |/| ConsentResource to gather policy consent from users
| * ConsentResource to gather policy consent from usersRichard van der Hoff2018-05-152-0/+210
| | | | | | | | | | Hopefully there are enough comments and docs in this that it makes sense on its own.
* | Set Server header in SynapseRequestRichard van der Hoff2018-05-109-14/+1
|/ | | | | | | | | | | | (instead of everywhere that writes a response. Or rather, the subset of places which write responses where we haven't forgotten it). This also means that we don't have to have the mysterious version_string attribute in anything with a request handler. Unfortunately it does mean that we have to pass the version string wherever we instantiate a SynapseSite, which has been c&ped 150 times, but that is code that ought to be cleaned up anyway really.
* Remove redundant request_handler decoratorRichard van der Hoff2018-05-105-29/+38
| | | | | | This is needless complexity; we might as well use the wrapper directly. Also rename wrap_request_handler->wrap_json_request_handler.
* notifications: Convert next_token to string according to the specKonstantinos Sideris2018-05-051-1/+1
| | | | | | Currently the parameter is serialized as an integer. Signed-off-by: Konstantinos Sideris <sideris.konstantin@gmail.com>
* Merge pull request #3161 from NotAFile/remove-v1authRichard van der Hoff2018-05-032-2/+6
|\ | | | | Make Client-Server API return 403 for invalid token
| * Burminate v1authAdrian Tschira2018-04-302-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This closes #2602 v1auth was created to account for the differences in status code between the v1 and v2_alpha revisions of the protocol (401 vs 403 for invalid tokens). However since those protocols were merged, this makes the r0 version/endpoint internally inconsistent, and violates the specification for the r0 endpoint. This might break clients that rely on this inconsistency with the specification. This is said to affect the legacy angular reference client. However, I feel that restoring parity with the spec is more important. Either way, it is critical to inform developers about this change, in case they rely on the illegal behaviour. Signed-off-by: Adrian Tschira <nota@notafile.com>
* | Fix logcontext leak in media repoRichard van der Hoff2018-05-022-1/+4
|/ | | | Make FileResponder.write_to_consumer uphold the logcontext contract
* add guard for None on purge_history apiKrombel2018-04-301-1/+14
|
* Merge pull request #3155 from NotAFile/py3-bytes-1Richard van der Hoff2018-04-301-3/+3
|\ | | | | more bytes strings
| * more bytes stringsAdrian Tschira2018-04-291-3/+3
| | | | | | | | Signed-off-by: Adrian Tschira <nota@notafile.com>
* | Merge pull request #3140 from matrix-org/rav/use_run_in_backgroundRichard van der Hoff2018-04-301-2/+3
|\ \ | | | | | | Use run_in_background in preference to preserve_fn
| * | Merge remote-tracking branch 'origin/develop' into rav/use_run_in_backgroundRichard van der Hoff2018-04-271-2/+7
| |\|
| * | Use run_in_background in preference to preserve_fnRichard van der Hoff2018-04-271-2/+3
| | | | | | | | | | | | | | | | | | While I was going through uses of preserve_fn for other PRs, I converted places which only use the wrapped function once to use run_in_background, to avoid creating the function object.
* | | Merge pull request #3156 from NotAFile/py3-hmac-bytesRichard van der Hoff2018-04-302-11/+15
|\ \ \ | | | | | | | | Construct HMAC as bytes on py3
| * | | Construct HMAC as bytes on py3Adrian Tschira2018-04-292-11/+15
| | |/ | |/| | | | | | | Signed-off-by: Adrian Tschira <nota@notafile.com>
* | | Merge pull request #3108 from NotAFile/py3-six-urlparseRichard van der Hoff2018-04-304-7/+8
|\ \ \ | |/ / |/| | Use six.moves.urlparse
| * | Use six.moves.urlparseAdrian Tschira2018-04-154-7/+8
| |/ | | | | | | | | | | The imports were shuffled around a bunch in py3 Signed-off-by: Adrian Tschira <nota@notafile.com>
* / Improve exception handling for background processesRichard van der Hoff2018-04-271-2/+7
|/ | | | | | | | | | | | | | | | | | There were a bunch of places where we fire off a process to happen in the background, but don't have any exception handling on it - instead relying on the unhandled error being logged when the relevent deferred gets garbage-collected. This is unsatisfactory for a number of reasons: - logging on garbage collection is best-effort and may happen some time after the error, if at all - it can be hard to figure out where the error actually happened. - it is logged as a scary CRITICAL error which (a) I always forget to grep for and (b) it's not really CRITICAL if a background process we don't care about fails. So this is an attempt to add exception handling to everything we fire off into the background.
* Merge pull request #3079 from matrix-org/erikj/limit_concurrent_sendsErik Johnston2018-04-101-6/+1
|\ | | | | Limit concurrent event sends for a room
| * Use create_and_send_nonmember_event everywhereErik Johnston2018-04-091-6/+1
| |
* | Merge pull request #2996 from krombel/allow_auto_join_roomsRichard van der Hoff2018-04-101-32/+0
|\ \ | | | | | | move handling of auto_join_rooms to RegisterHandler
| * \ Merge branch 'develop' of into allow_auto_join_roomsKrombel2018-03-283-3/+3
| |\ \
| * | | move handling of auto_join_rooms to RegisterHandlerKrombel2018-03-141-32/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently the handling of auto_join_rooms only works when a user registers itself via public register api. Registrations via registration_shared_secret and ModuleApi do not work This auto_joins the users in the registration handler which enables the auto join feature for all 3 registration paths. This is related to issue #2725 Signed-Off-by: Matthias Kesler <krombel@krombel.de>
* | | | Merge pull request #3061 from NotAFile/add-some-byte-stringsRichard van der Hoff2018-04-091-2/+2
|\ \ \ \ | | | | | | | | | | Add b prefixes to some strings that are bytes in py3
| * | | | Add b prefixes to some strings that are bytes in py3Adrian Tschira2018-04-041-2/+2
| | |/ / | |/| | | | | | | | | | | | | | | | | | This has no effect on python2 Signed-off-by: Adrian Tschira <nota@notafile.com>
* | | | Merge pull request #3073 from NotAFile/use-six-reraiseRichard van der Hoff2018-04-091-1/+3
|\ \ \ \ | | | | | | | | | | Replace old-style raise with six.reraise
| * | | | Replace old-style raise with six.reraiseAdrian Tschira2018-04-061-1/+3
| | |_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The old style raise is invalid syntax in python3. As noted in the docs, this adds one more frame in the traceback, but I think this is acceptable: <ipython-input-7-bcc5cba3de3f> in <module>() 16 except: 17 pass ---> 18 six.reraise(*x) /usr/lib/python3.6/site-packages/six.py in reraise(tp, value, tb) 691 if value.__traceback__ is not tb: 692 raise value.with_traceback(tb) --> 693 raise value 694 finally: 695 value = None <ipython-input-7-bcc5cba3de3f> in <module>() 9 10 try: ---> 11 x() 12 except: 13 x = sys.exc_info() Also note that this uses six, which is not formally a dependency yet, but is included indirectly since most packages depend on it. Signed-off-by: Adrian Tschira <nota@notafile.com>
* | | | Merge pull request #2938 from dklug/developRichard van der Hoff2018-04-091-1/+4
|\ \ \ \ | |/ / / |/| | | Return 401 for invalid access_token on logout
| * | | Return 401 for invalid access_token on logoutdklug2018-03-021-1/+4
| | | | | | | | | | | | | | | | Signed-off-by: Duncan Klug <dklug@ucmerced.edu>
* | | | Merge pull request #2986 from jplatte/join_reponse_room_idRichard van der Hoff2018-04-051-1/+6
|\ \ \ \ | | | | | | | | | | Add room_id to the response of `rooms/{roomId}/join`
| * | | | Add room_id to the response of `rooms/{roomId}/join`Jonas Platte2018-03-131-1/+6
| | |_|/ | |/| | | | | | | | | | Fixes #2349
* | | | Use "/settings/" (plural)Luke Barnard2018-04-051-1/+1
| | | |
* | | | Use join_policy API instead of joinableLuke Barnard2018-04-031-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The API is now under /groups/$group_id/setting/m.join_policy and expects a JSON blob of the shape ```json { "m.join_policy": { "type": "invite" } } ``` where "invite" could alternatively be "open".
* | | | This should probably be a PUTDavid Baker2018-03-281-1/+1
| | | |
* | | | Add joinability for groupsDavid Baker2018-03-281-0/+28
| |_|/ |/| | | | | | | | | | | Adds API to set the 'joinable' flag, and corresponding flag in the table.
* | | Merge branch 'master' of github.com:matrix-org/synapse into developErik Johnston2018-03-192-2/+2
|\ \ \
| * | | Replace ujson with simplejsonErik Johnston2018-03-153-3/+3
| | | |
* | | | Replace some ujson with simplejson to make it workErik Johnston2018-03-161-1/+1
| |/ / |/| |
* | | RoomMembershipRestServlet doesn't handle /forgetErik Johnston2018-03-131-1/+1
| | | | | | | | | | | | | | | Due to the order we register the REST handlers `/forget` was handled by the correct handler.
* | | Add transactional API to history purgeRichard van der Hoff2018-03-121-3/+35
| | | | | | | | | | | | Make the purge request return quickly, and allow scripts to poll for updates.
* | | Provide a means to pass a timestamp to purge_historyRichard van der Hoff2018-03-051-3/+55
| |/ |/|
* | Move RoomMemberHandler out of HandlersErik Johnston2018-03-013-13/+15
| |