summary refs log tree commit diff
path: root/synapse/rest/client/v1 (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Remove unnecessary parentheses around return statements (#5931)Andrew Morgan2019-08-3011-66/+66
| | | | | 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 :)
* Return 404 instead of 403 when retrieving an event without perms (#5798)Andrew Morgan2019-08-061-3/+11
| | | | | Part of fixing matrix-org/sytest#652 Sytest PR: matrix-org/sytest#667
* Merge tag 'v1.2.0rc2' into developAndrew Morgan2019-07-241-7/+30
|\ | | | | | | | | | | | | 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-7/+30
| | | | | | | | | | | | | | | | | | | | * 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-2311-76/+72
|/
* Clean up exception handling for access_tokens (#5656)Richard van der Hoff2019-07-112-4/+15
| | | | | | | | | | | | | | | | 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.
* Remove access-token support from RegistrationHandler.register (#5641)Richard van der Hoff2019-07-081-10/+4
| | | | | | | | 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.
* Factor out some redundant code in the login impl (#5639)Richard van der Hoff2019-07-081-39/+10
| | | | | | | | * Factor out some redundant code in the login impl Also fixes a redundant access_token which was generated during jwt login. * changelog
* Complete the SAML2 implementation (#5422)Richard van der Hoff2019-07-021-8/+46
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * SAML2 Improvements and redirect stuff Signed-off-by: Alexander Trost <galexrt@googlemail.com> * Code cleanups and simplifications. Also: share the saml client between redirect and response handlers. * changelog * Revert redundant changes to static js * Move all the saml stuff out to a centralised handler * Add support for tracking SAML2 sessions. This allows us to correctly handle `allow_unsolicited: False`. * update sample config * cleanups * update sample config * rename BaseSSORedirectServlet for consistency * Address review comments
| * Merge branch 'develop' into rav/saml2_clientRichard van der Hoff2019-07-011-1/+1
| |\
| * | rename BaseSSORedirectServlet for consistencyRichard van der Hoff2019-06-271-3/+3
| | |
| * | Move all the saml stuff out to a centralised handlerRichard van der Hoff2019-06-261-11/+2
| | |
| * | Merge branch 'develop' into rav/saml2_clientRichard van der Hoff2019-06-2610-327/+252
| |\ \
| * | | Code cleanups and simplifications.Richard van der Hoff2019-06-111-42/+41
| | | | | | | | | | | | | | | | Also: share the saml client between redirect and response handlers.
| * | | Merge remote-tracking branch 'origin/develop' into rav/saml2_clientRichard van der Hoff2019-06-1012-203/+185
| |\ \ \
| * | | | SAML2 Improvements and redirect stuffAlexander Trost2019-06-021-0/+46
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Alexander Trost <galexrt@googlemail.com>
* | | | | Fix JWT login with new users (#5586)PauRE2019-07-021-6/+3
| |_|_|/ |/| | | | | | | | | | | Signed-off-by: Pau Rodriguez-Estivill <prodrigestivill@gmail.com>
* | | | Fix JWT login (#5555)PauRE2019-06-271-1/+1
| |_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Fix JWT login with register Signed-off-by: Pau Rodriguez-Estivill <prodrigestivill@gmail.com> * Add pyjwt conditional dependency Signed-off-by: Pau Rodriguez-Estivill <prodrigestivill@gmail.com> * Added changelog file Signed-off-by: Pau Rodriguez-Estivill <prodrigestivill@gmail.com> * Improved changelog description Signed-off-by: Pau Rodriguez-Estivill <prodrigestivill@gmail.com>
* | | Split public rooms directory auth config in twoBrendan Abolivier2019-06-241-1/+1
| | |
* | | Run Black. (#5482)Amber Brown2019-06-2010-322/+246
| |/ |/|
* | Hawkowl/fix missing auth (#5328)Amber Brown2019-06-041-0/+1
| |
* | Unify v1 and v2 REST client APIs (#5226)Amber Brown2019-06-0312-203/+183
|/
* Fix ignored filter field in `/messages` endpointEisha Chen-yen-su2019-05-301-0/+2
| | | | | | | | This fixes a bug which were causing the "event_format" field to be ignored in the filter of requests to the `/messages` endpoint of the CS API. Signed-off-by: Eisha Chen-yen-su <chenyensu0@gmail.com>
* Merge pull request #5256 from aaronraimist/logout-correct-errorErik Johnston2019-05-301-18/+9
|\ | | | | Show correct error when logging out and access token is missing
| * LintAaron Raimist2019-05-291-2/+0
| | | | | | | | Signed-off-by: Aaron Raimist <aaron@raim.ist>
| * Get rid of try exceptAaron Raimist2019-05-271-16/+9
| | | | | | | | Signed-off-by: Aaron Raimist <aaron@raim.ist>
| * Show correct error when logging out and access token is missingAaron Raimist2019-05-241-4/+4
| | | | | | | | Signed-off-by: Aaron Raimist <aaron@raim.ist>
* | Serve CAS login over r0 (#5286)Amber Brown2019-05-301-2/+2
|/
* Drop support for v2_alpha API prefix (#5190)Richard van der Hoff2019-05-151-4/+4
|
* Allow client event serialization to be asyncErik Johnston2019-05-142-14/+20
|
* add options to require an access_token to GET /profile and /publicRooms on ↵Matthew Hodgson2019-05-082-12/+34
| | | | | | | | | | | | | | | | | CS API (#5083) This commit adds two config options: * `restrict_public_rooms_to_local_users` Requires auth to fetch the public rooms directory through the CS API and disables fetching it through the federation API. * `require_auth_for_profile_requests` When set to `true`, requires that requests to `/profile` over the CS API are authenticated, and only returns the user's profile if the requester shares a room with the profile's owner, as per MSC1301. MSC1301 also specifies a behaviour for federation (only returning the profile if the server asking for it shares a room with the profile's owner), but that's currently really non-trivial to do in a not too expensive way. Next step is writing down a MSC that allows a HS to specify which user sent the profile query. In this implementation, Synapse won't send a profile query over federation if it doesn't believe it already shares a room with the profile's owner, though. Groups have been intentionally omitted from this commit.
* Move admin api impl to its own packageRichard van der Hoff2019-05-011-896/+0
| | | | It doesn't really belong under rest/client/v1 any more.
* Move admin API to a new prefixRichard van der Hoff2019-05-011-20/+50
|
* Move admin API away from ClientV1RestServletRichard van der Hoff2019-05-011-33/+33
|
* Merge branch 'develop' of github.com:matrix-org/synapse into ↵Erik Johnston2019-04-173-78/+42
|\ | | | | | | babolivier/account_expiration
| * Remove usage of request.postpathErik Johnston2019-04-161-8/+8
| | | | | | | | | | | | | | This is an undocumented variable in twisted, and relies on the servlet being mounted in the right way. This also breaks getting push rules on workers.
| * Only handle GET requests for /push_rulesErik Johnston2019-04-151-0/+7
| |
| * Add admin API for group deletionErik Johnston2019-04-031-0/+26
| |
| * Fix grammar and document get_current_users_in_room (#4998)Andrew Morgan2019-04-031-1/+1
| |
| * Remove presence lists (#4989)Neil Johnson2019-04-031-67/+0
| | | | | | Remove presence list support as per MSC 1819
| * remove log line for password (#4965)Neil Johnson2019-03-281-2/+0
| | | | | | | | Remove log line for password.
* | Add management endpoints for account validityBrendan Abolivier2019-04-171-0/+39
|/
* Support 3PID login in password providers (#4931)Andrew Morgan2019-03-261-4/+45
| | | | | Adds a new method, check_3pid_auth, which gives password providers the chance to allow authentication with third-party identifiers such as email or msisdn.
* Use flagsErik Johnston2019-03-201-2/+4
|
* Gracefully handle failing to kick userErik Johnston2019-03-201-19/+27
|
* Log new room IDErik Johnston2019-03-201-1/+6
|
* Add ratelimiting on login (#4821)Brendan Abolivier2019-03-151-0/+10
| | | Add two ratelimiters on login (per-IP address and per-userID).
* 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.
* 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.
* Fix registration on workers (#4682)Erik Johnston2019-02-201-2/+2
| | | | | | | | | | * 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-37/+22
|
* Fix typosAndrew Morgan2019-01-221-4/+4
|
* Return well_known in /login response (#4319)Richard van der Hoff2018-12-241-7/+11
| | | | ... as per MSC1730.
* 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.
* Initialise user displayname from SAML2 data (#4272)Richard van der Hoff2018-12-071-0/+5
| | | | | When we register a new user from SAML2 data, initialise their displayname correctly.
* 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.
* Fix non-ASCII pushrules (#4248)Amber Brown2018-12-041-12/+23
|
* fix type errorAmber Brown2018-12-031-1/+1
|
* 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
* 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.
* Clean up room alias creationErik Johnston2018-10-191-32/+5
|
* 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-127-52/+57
|/
* Allow guests to access /rooms/:roomId/event/:eventIdWill Hunt2018-08-201-1/+1
|
* Integrate presence from hotfixes (#3694)Amber Brown2018-08-181-1/+2
|
* speed up /members and add at= and membership params (#3568)Matthew Hodgson2018-08-151-3/+29
|
* Don't fail requests to unbind 3pids for non supporting ID serversErik Johnston2018-08-081-2/+9
| | | | | | | | | | 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
* 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-021-7/+15
|/ /
* | make /context lazyload & filter aware (#3567)Matthew Hodgson2018-07-271-0/+9
| | | | | | make /context lazyload & filter aware.
* | Merge branch 'develop' of github.com:matrix-org/synapse into ↵Erik Johnston2018-07-233-437/+126
|\ \ | | | | | | | | | 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-192-437/+4
| |/
* | 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.
* check isort by travisKrombel2018-07-162-3/+3
|
* 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-147-74/+42
|\ | | | | 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-135-14/+14
| | | | | | | | | | | | 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-137-75/+43
| | | | | | | | | | | | | | 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-143-6/+5
|/
* run isortAmber Brown2018-07-0914-86/+88
|
* Attempt to be more performant on PyPy (#3462)Amber Brown2018-06-282-2/+3
|
* 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-251-1/+3
| | | | | | 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-221-3/+1
| | | | | This reverts commit ce0d911156b355c5bf452120bfb08653dad96497, reversing changes made to b4a5d767a94f1680d07edfd583aae54ce422573e.
* Merge pull request #3431 from matrix-org/rav/erasure_visibilityErik Johnston2018-06-221-1/+3
|\ | | | | Support hiding events from deleted users
| * mark accounts as erased when requestedRichard van der Hoff2018-06-121-1/+3
| |
* | Remove run_on_reactor (#3395)Amber Brown2018-06-141-7/+0
|/
* 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.
* 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>
* 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.
* Set Server header in SynapseRequestRichard van der Hoff2018-05-101-1/+0
| | | | | | | | | | | | (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.
* 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>
* add guard for None on purge_history apiKrombel2018-04-301-1/+14
|
* Merge pull request #3156 from NotAFile/py3-hmac-bytesRichard van der Hoff2018-04-301-7/+9
|\ | | | | Construct HMAC as bytes on py3
| * Construct HMAC as bytes on py3Adrian Tschira2018-04-291-7/+9
| | | | | | | | Signed-off-by: Adrian Tschira <nota@notafile.com>
* | Use six.moves.urlparseAdrian Tschira2018-04-152-5/+6
|/ | | | | | The imports were shuffled around a bunch in py3 Signed-off-by: Adrian Tschira <nota@notafile.com>
* 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 #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 #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
* | | Merge branch 'master' of github.com:matrix-org/synapse into developErik Johnston2018-03-191-1/+1
|\ \ \ | |/ / |/| |
| * | Replace ujson with simplejsonErik Johnston2018-03-151-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-012-12/+14
| |
* | Merge pull request #2854 from matrix-org/erikj/event_create_workerErik Johnston2018-02-131-1/+0
|\ \ | | | | | | Create a worker for event creation
| * | Add event_creator workerErik Johnston2018-02-071-1/+0
| | |
* | | Fix typos in purge api & docRichard van der Hoff2018-02-131-3/+1
| | | | | | | | | | | | | | | * It's supposed to be purge_local_events, not ..._history * Fix the doc to have valid json
* | | Merge pull request #2858 from matrix-org/rav/purge_updatesRichard van der Hoff2018-02-091-1/+10
|\ \ \ | |/ / |/| | delete_local_events for purge_room_history
| * | delete_local_events for purge_historyRichard van der Hoff2018-02-091-1/+10
| | | | | | | | | | | | Add a flag which makes the purger delete local events
* | | Update copyrightErik Johnston2018-02-062-0/+2
| | |
* | | Update places where we create eventsErik Johnston2018-02-052-9/+11
| | |
* | | Merge branch 'develop' into travis/admin-list-mediaTravis Ralston2018-02-012-17/+34
|\ \ \
| * | | add ?ts massaging for ASes (#2754)Matthew Hodgson2018-01-231-6/+11
| | | | | | | | | | | | blindly implement ?ts for AS. untested
| * | | rewrite based on PR feedback:Matthew Hodgson2018-01-191-13/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * [ ] split config options into allowed_local_3pids and registrations_require_3pid * [ ] simplify and comment logic for picking registration flows * [ ] fix docstring and move check_3pid_allowed into a new util module * [ ] use check_3pid_allowed everywhere @erikjohnston PTAL
| * | | fix up v1, and improve errorsMatthew Hodgson2018-01-191-11/+29
| |/ /
* / / Add an admin route to get all the media in a roomTravis Ralston2018-01-201-0/+22
|/ / | | | | | | | | This is intended to be used by administrators to monitor the media that is passing through their server, if they wish. Signed-off-by: Travis Ralston <travpc@gmail.com>
* | Add /room/{id}/event/{id} to synapseRichard van der Hoff2018-01-091-3/+26
| | | | | | | | | | | | Turns out that there is a valid usecase for retrieving event by id (notably having received a push), but event ids should be scoped to room, so /event/{id} is wrong.
* | Better logging when login can't find a 3pidRichard van der Hoff2017-12-201-4/+10
|/
* Delete devices in various logout situationsRichard van der Hoff2017-11-291-2/+25
| | | | | | | | | | | | | Make sure that we delete devices whenever a user is logged out due to any of the following situations: * /logout * /logout_all * change password * deactivate account (by the user or by an admin) * invalidate access token from a dynamic module Fixes #2672.
* Move set_password into its own handlerRichard van der Hoff2017-11-291-2/+2
| | | | | | Non-functional refactoring to move set_password. This means that we'll be able to properly deactivate devices and access tokens without introducing a dependency loop.
* Move deactivate_account into its own handlerRichard van der Hoff2017-11-291-2/+2
| | | | | | Non-functional refactoring to move deactivate_account. This means that we'll be able to properly deactivate devices and access tokens without introducing a dependency loop.
* Downcase userids for shared-secret registrationRichard van der Hoff2017-11-101-1/+1
|
* Allow password_auth_providers to return a callbackRichard van der Hoff2017-11-011-1/+4
| | | | ... so that they have a way to record access tokens.
* Merge remote-tracking branch 'origin/develop' into ↵David Baker2017-11-011-3/+10
|\ | | | | | | rav/refactor_accesstoken_delete
| * Merge pull request #2615 from matrix-org/rav/break_auth_device_depDavid Baker2017-11-011-3/+0
| |\ | | | | | | Break dependency of auth_handler on device_handler
| | * Break dependency of auth_handler on device_handlerRichard van der Hoff2017-11-011-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | I'm going to need to make the device_handler depend on the auth_handler, so I need to break this dependency to avoid a cycle. It turns out that the auth_handler was only using the device_handler in one place which was an edge case which we can more elegantly handle by throwing an error rather than fixing it up.
| * | Apparently this is pythonDavid Baker2017-11-011-1/+1
| | |
| * | Log login requestsDavid Baker2017-11-011-0/+10
| |/ | | | | | | Carefully though, to avoid logging passwords
* / Move access token deletion into auth handlerRichard van der Hoff2017-11-012-11/+6
|/ | | | | | | Also move duplicated deactivation code into the auth handler. I want to add some hooks when we deactivate an access token, so let's bring it all in here so that there's somewhere to put it.
* Refactor some logic from LoginRestServlet into AuthHandlerRichard van der Hoff2017-10-311-29/+26
| | | | | | | | | | | | | | I'm going to need some more flexibility in handling login types in password auth providers, so as a first step, move some stuff from LoginRestServlet into AuthHandler. In particular, we pass everything other than SAML, JWT and token logins down to the AuthHandler, which now has responsibility for checking the login type and fishing the password out of the login dictionary, as well as qualifying the user_id if need be. Ideally SAML, JWT and token would go that way too, but there's no real need for it right now and I'm trying to minimise impact. This commit *should* be non-functional.
* replace 'except:' with 'except Exception:'Richard van der Hoff2017-10-234-7/+7
| | | | what could possibly go wrong
* Remove pointless create() methodRichard van der Hoff2017-10-201-3/+3
| | | | | It just calls the constructor, so we may as well kill it rather than having random codepaths.
* Merge branch 'develop' into erikj/groups_mergedDavid Baker2017-10-021-10/+6
|\
| * Fix /joined_members to work with AS usersErik Johnston2017-09-281-2/+1
| |
| * Fix bug where /joined_members didn't check user was in roomErik Johnston2017-09-271-10/+7
| |
* | Merge branch 'develop' of github.com:matrix-org/synapse into erikj/groups_mergedErik Johnston2017-09-191-8/+8
|\|
| * fix englishhera2017-08-041-7/+7
| |
| * typohera2017-08-041-1/+1
| |
* | Split out profile handler to fix testsErik Johnston2017-08-251-9/+9
|/
* Fix bug where pusherpool didn't start and broke some roomsErik Johnston2017-07-061-8/+6
| | | | | | | | Since we didn't instansiate the PusherPool at start time it could fail at run time, which it did for some users. This may or may not fix things for those users, but it should happen at start time and stop the server from starting.
* Add API to quarantine mediaErik Johnston2017-06-191-0/+25
|
* Remove unused importErik Johnston2017-06-191-1/+1
|
* Change to create new room and join other usersErik Johnston2017-06-191-6/+53
|
* Forget roomErik Johnston2017-06-191-0/+2
|
* Add shutdown room APIErik Johnston2017-06-191-1/+66
|
* Add more granular event send metricsErik Johnston2017-05-021-0/+1
|
* Merge pull request #2130 from APwhitehat/roomexistsErik Johnston2017-04-271-1/+5
|\ | | | | Check that requested room_id exists
| * Check that requested room_id existsAnant Prakash2017-04-141-1/+5
| |
* | Reduce size of joined_user cacheErik Johnston2017-04-251-1/+7
|/ | | | | | | | The _get_joined_users_from_context cache stores a mapping from user_id to avatar_url and display_name. Instead of storing those in a dict, store them in a namedtuple as that uses much less memory. We also try converting the string to ascii to further reduce the size.
* Merge pull request #2011 from matrix-org/matthew/turn_allow_guestsErik Johnston2017-03-311-1/+4
|\ | | | | add setting (on by default) to support TURN for guests
| * add setting (on by default) to support TURN for guestsMatthew Hodgson2017-03-151-1/+4
| |
* | Don't recreate so many setsErik Johnston2017-03-161-2/+1
| |
* | Format presence events on the edges instead of reformatting them multiple timesErik Johnston2017-03-151-0/+3
| |
* | Merge pull request #1997 from matrix-org/dbkr/cas_partialdownloadDavid Baker2017-03-151-1/+8
|\ \ | |/ |/| Handle PartialDownloadError in CAS login
| * Handle PartialDownloadError in CAS loginDavid Baker2017-03-141-1/+8
| |
* | Support registration / login with phone numberDavid Baker2017-03-131-6/+82
|/ | | | Changes from https://github.com/matrix-org/synapse/pull/1971
* Revert "Support registration & login with phone number"Erik Johnston2017-03-131-82/+6
|
* Not any more, it doesn'tDavid Baker2017-03-081-1/+0
|
* Minor fixes from PR feedbackDavid Baker2017-03-081-1/+1
|
* Factor out msisdn canonicalisationDavid Baker2017-03-081-13/+5
| | | | Plus a couple of other minor fixes
* Fix pep8David Baker2017-03-081-3/+3
|
* Support new login formatDavid Baker2017-03-071-6/+91
| | | | https://docs.google.com/document/d/1-6ZSSW5YvCGhVFDyD2QExAUAdpCWjccvJT5xiyTTG2Y/edit#
* Remove unused paramErik Johnston2017-02-201-1/+0
|
* Make kick & ban reasons workDavid Baker2017-02-141-0/+5
| | | | | | We somehow specced APIs with reason strings, preserve the content in the events and even have the clients display them, but failed to actually pass the parameter through to the event content.
* admin,storage: added more administrator functionalitiesMorteza Araby2017-02-022-2/+224
| | | | | | | | | | | | | | administrators can now: - Set displayname of users - Update user avatars - Search for users by user_id - Browse all users in a paginated API - Reset user passwords - Deactivate users Helpers for doing paginated queries has also been added to storage Signed-off-by: Morteza Araby <morteza.araby@ericsson.com>
* Fix email push in pusher workerErik Johnston2017-02-021-1/+4
| | | | | | This was broken when device list updates were implemented, as Mailer could no longer instantiate an AuthHandler due to a dependency on federation sending.
* Added username and password for turn serverMarvin Steadfast2017-01-191-9/+17
| | | | | It makes it possible to use a turn server that needs a username and password instead of a token.
* Lowercase all email addresses before querying dbDavid Baker2017-01-181-1/+7
| | | | | Since we store all emails in the DB in lowercase (https://github.com/matrix-org/synapse/pull/1170)
* Linearize updates to membership via PUT /state/Erik Johnston2017-01-091-11/+17
|
* Merge pull request #1676 from matrix-org/erikj/room_listErik Johnston2016-12-122-1/+52
|\ | | | | Add new API appservice specific public room list
| * Add new API appservice specific public room listErik Johnston2016-12-062-1/+52
| |
* | Add /room/<room_id>/joined_members APIErik Johnston2016-12-081-0/+19
| | | | | | | | | | | | This returns the currently joined members in the room with their display names and avatar urls. This is more efficient than /members for large rooms where you don't need the full events.
* | Add joined_rooms servletErik Johnston2016-12-081-0/+17
|/
* Merge branch 'develop' into rav/no_more_refresh_tokensRichard van der Hoff2016-11-301-12/+0
|\
| * Stop putting a time caveat on access tokensRichard van der Hoff2016-11-291-12/+0
| | | | | | | | | | | | | | | | The 'time' caveat on the access tokens was something of a lie, since we weren't enforcing it; more pertinently its presence stops us ever adding useful time caveats. Let's move in the right direction by not lying in our caveats.
* | Stop generating refresh tokensRichard van der Hoff2016-11-281-18/+10
|/ | | | | | | Since we're not doing refresh tokens any more, we should start killing off the dead code paths. /tokenrefresh itself is a bit of a thornier subject, since there might be apps out there using it, but we can at least not generate refresh tokens on new logins.
* Clean transactions based on time. Add HttpTransactionCache tests.Kegan Dougal2016-11-141-1/+1
|
* Move .observe() up to the cache to make things neaterKegan Dougal2016-11-141-24/+6
|
* Review commentsKegan Dougal2016-11-113-146/+29
|
* More flake8Kegan Dougal2016-11-111-1/+3
|
* Flake8 and fix whoopsieKegan Dougal2016-11-111-4/+8
|
* Use ObservableDeferreds instead of Deferreds as they behave as intendedKegan Dougal2016-11-112-30/+31
|
* Flake8Kegan Dougal2016-11-101-3/+3
|
* Store Promise<Response> instead of Response for HTTP API transactionsKegan Dougal2016-11-103-82/+56
| | | | | | | | | | | | | | | | | | This fixes a race whereby: - User hits an endpoint. - No cached transaction so executes main code. - User hits same endpoint. - No cache transaction so executes main code. - Main code finishes executing and caches response and returns. - Main code finishes executing and caches response and returns. This race is common in the wild when Synapse is struggling under load. This commit fixes the race by: - User hits an endpoint. - Caches the promise to execute the main code and executes main code. - User hits same endpoint. - Yields on the same promise as the first request. - Main code finishes executing and returns, unblocking both requests.
* rest/client/v1/register: use the correct requester in createUserPatrik Oldsberg2016-10-061-3/+6
| | | | Signed-off-by: Patrik Oldsberg <patrik.oldsberg@ericsson.com>
* storage/appservice: make appservice methods only relying on the cache ↵Patrik Oldsberg2016-10-061-1/+1
| | | | synchronous
* Time out typing over federationErik Johnston2016-09-231-1/+4
|
* Support /initialSync in synchrotron workerErik Johnston2016-09-212-5/+4
|
* Enable guest access to POST /publicRoomsErik Johnston2016-09-171-2/+2
|
* Make POST /publicRooms require authErik Johnston2016-09-161-2/+1
|
* Change the way we calculate new_limit in /publicRooms and add POST APIErik Johnston2016-09-151-0/+29
|
* Remove default public rooms limitErik Johnston2016-09-151-1/+1
|
* By default limit /publicRooms to 100 entriesErik Johnston2016-09-151-1/+1
|
* Pass since/from parameters over federationErik Johnston2016-09-151-3/+3
|
* Allow paginating both forwards and backwardsErik Johnston2016-09-151-3/+15
|
* Remove support for aggregate room listsErik Johnston2016-09-151-1/+1
|
* Conform better to the CAS protocol specificationShell Turner2016-09-091-5/+2
| | | | | | | Redirect to CAS's /login endpoint properly, and don't require an <attributes> element. Signed-off-by: Shell Turner <cam.turn@gmail.com>
* Merge pull request #1096 from matrix-org/markjh/get_access_tokenMark Haines2016-09-093-16/+10
|\ | | | | Add helper function for getting access_tokens from requests
| * Add helper function for getting access_tokens from requestsMark Haines2016-09-093-16/+10
| | | | | | | | | | | | Rather than reimplementing the token parsing in the various places. This will make it easier to change the token parsing to allow access_tokens in HTTP headers.
* | Filter returned events for client-facing formatPaul "LeoNerd" Evans2016-09-091-2/+3
| |
* | Allow clients to specify the format a room state event is returned inPaul "LeoNerd" Evans2016-09-091-1/+7
|/
* Use parse_stringErik Johnston2016-09-081-2/+2
|
* Add server param to /publicRoomsErik Johnston2016-09-081-5/+16
|
* Pass through user-supplied content in /join/$room_idKegan Dougal2016-08-231-0/+1
| | | | | | | It was always intended to allow custom keys on the join event, but this has at some point been lost. Restore it. If the user specifies keys like "avatar_url" then they will be clobbered.
* Make synchrotron accept /eventsErik Johnston2016-08-121-5/+4
|
* Dont invoke get_handlers fromClientV1RestServletErik Johnston2016-08-129-1/+86
| | | | | | hs.get_handlers() can not be invoked from split out processes. Moving the invocations down a level means that we can slowly split out individual servlets.
* Merge pull request #995 from matrix-org/rav/clean_up_cas_loginDavid Baker2016-08-091-125/+33
|\ | | | | Clean up CAS login code
| * Clean up CAS login codeRichard van der Hoff2016-08-081-125/+33
| | | | | | | | | | | | | | Remove some apparently unused code. Clean up parse_cas_response, mostly to catch the exception if the CAS response isn't valid XML.
* | Fix CAS loginRichard van der Hoff2016-08-081-0/+1
|/ | | | Attempting to log in with CAS was giving a 500 error.
* Implement deleting devicesRichard van der Hoff2016-07-261-3/+10
|
* Merge pull request #933 from matrix-org/rav/type_annotationsRichard van der Hoff2016-07-202-0/+8
|\ | | | | Type annotations
| * Type annotationsRichard van der Hoff2016-07-192-0/+8
| | | | | | | | | | Add some type annotations to help PyCharm (in particular) to figure out the types of a bunch of things.
* | Merge pull request #932 from matrix-org/rav/register_refactorDavid Baker2016-07-201-1/+3
|\ \ | | | | | | Further registration refactoring
| * | Further registration refactoringRichard van der Hoff2016-07-191-1/+3
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | * `RegistrationHandler.appservice_register` no longer issues an access token: instead it is left for the caller to do it. (There are two of these, one in `synapse/rest/client/v1/register.py`, which now simply calls `AuthHandler.issue_access_token`, and the other in `synapse/rest/client/v2_alpha/register.py`, which is covered below). * In `synapse/rest/client/v2_alpha/register.py`, move the generation of access_tokens into `_create_registration_details`. This means that the normal flow no longer needs to call `AuthHandler.issue_access_token`; the shared-secret flow can tell `RegistrationHandler.register` not to generate a token; and the appservice flow continues to work despite the above change.
* | Merge pull request #922 from matrix-org/erikj/file_api2Erik Johnston2016-07-201-1/+10
|\ \ | |/ |/| Feature: Add filter to /messages. Add 'contains_url' to filter.
| * Add filter param to /messages APIErik Johnston2016-07-141-1/+10
| |
* | Add device_id support to /loginRichard van der Hoff2016-07-181-3/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | Add a 'devices' table to the storage, as well as a 'device_id' column to refresh_tokens. Allow the client to pass a device_id, and initial_device_display_name, to /login. If login is successful, then register the device in the devices table if it wasn't known already. If no device_id was supplied, make one up. Associate the device_id with the access token and refresh token, so that we can get at it again later. Ensure that the device_id is copied from the refresh token to the access_token when the token is refreshed.
* | Refactor login flowRichard van der Hoff2016-07-181-18/+23
| | | | | | | | | | | | | | | | | | | | Make sure that we have the canonical user_id *before* calling get_login_tuple_for_user_id. Replace login_with_password with a method which just validates the password, and have the caller call get_login_tuple_for_user_id. This brings the password flow into line with the other flows, and will give us a place to register the device_id if necessary.
* | Bug fix: expire invalid access tokensNegar Fazeli2016-07-131-1/+1
|/
* Add rest servlet. Fix SQL.Erik Johnston2016-07-061-0/+1
|
* Merge branch 'erikj/shared_secret' into erikj/test2Erik Johnston2016-07-061-4/+16
|\
| * Check that there are no null bytes in user and passswordErik Johnston2016-07-061-0/+6
| |
| * Add null separator to hmacErik Johnston2016-07-061-0/+2
| |
| * Add an admin option to shared secret registrationErik Johnston2016-07-051-0/+1
| |
| * Protect password when registering using shared secretErik Johnston2016-07-051-4/+7
| |
* | Add purge_history APIErik Johnston2016-07-051-0/+18
|/
* Fix style violationsKent Shikama2016-07-041-1/+2
| | | | Signed-off-by: Kent Shikama <kent@kentshikama.com>
* Use .get() instead of [] to access password_hashKent Shikama2016-07-041-1/+1
|
* Optionally include password hash in createUser endpointKent Shikama2016-07-031-1/+3
| | | | Signed-off-by: Kent Shikama <kent@kentshikama.com>
* Feature: Add deactivate account admin APIErik Johnston2016-06-301-0/+26
| | | | | | | | | | Allows server admins to "deactivate" accounts, which: - Revokes all access tokens - Removes all threepids - Removes password The API is a POST to `/admin/deactivate/<user_id>`
* Implement purge_media_cache admin APIErik Johnston2016-06-291-0/+32
|