summary refs log tree commit diff
path: root/scripts-dev/definitions.py (unfollow)
Commit message (Collapse)AuthorFilesLines
2020-10-14Remember mappings when we bind a 3pid using the internal sydent bind API (#66)Andrew Morgan3-0/+16
https://github.com/matrix-org/synapse-dinsic/pull/51 added an option that would automatically bind a user's threepid to a configured identity server after they had registered. Unfortunately, when you bind threepids, ideally you would store that mapping in the database so that later on you can remove those mappings when you deactivate an account. We found that due the fact that we did not store these mappings, threepids were not unbound upon user account deactivation. This PR fixes the issue by creating the mappings again, meaning they will again be removed upon account deactivation.
2020-10-13"Freeze" a room when the last admin of that room leaves (#59)Andrew Morgan3-4/+302
If the last admin of a room departs, and thus the room no longer has any admins within it, we "freeze" the room. Freezing a room means that the power level required to do anything in the room (sending messages, inviting others etc) will require power level 100. At the moment, an admin can come back and unfreeze the room manually. The plan is to eventually make unfreezing of the room automatic on admin rejoin, though that will be in a separate PR. This *could* work in mainline, however if the admin who leaves is on a homeserver without this functionality, then the room isn't frozen. I imagine this would probably be pretty confusing to people. Part of this feature was allowing Synapse modules to send events, which has been implemented in mainline at https://github.com/matrix-org/synapse/pull/8479, and cherry-picked to the `dinsic` fork in 62c7b10. The actual freezing logic has been implemented here in the RoomAccessRules module.
2020-10-12Allow modules to create and send events into rooms (#8479)Andrew Morgan7-89/+299
This PR allows Synapse modules making use of the `ModuleApi` to create and send non-membership events into a room. This can useful to have modules send messages, or change power levels in a room etc. Note that they must send event through a user that's already in the room. The non-membership event limitation is currently arbitrary, as it's another chunk of work and not necessary at the moment. This commit has been cherry-picked from mainline.
2020-09-29Only assert valid next_link params when provided (#65)Andrew Morgan2-6/+10
Bug introduced in https://github.com/matrix-org/synapse-dinsic/commit/ff91a451b We were checking whether the `nextLink` param was valid, even if it wasn't provided. In that case, `nextLink` was `None`, which would clearly not be a valid URL. This would prevent password reset and other operations if `nextLink` was not provided and the `next_link_domain_whitelist` config option was in use.
2020-09-25Escape the error description on the sso_error template. (#8405)Patrick Cloke2-1/+2
2020-09-25Fix occasional "Re-starting finished log context" from keyring (#8398)Richard van der Hoff3-90/+101
* Fix test_verify_json_objects_for_server_awaits_previous_requests It turns out that this wasn't really testing what it thought it was testing (in particular, `check_context` was turning failures into success, which was making the tests pass even though it wasn't clear they should have been. It was also somewhat overcomplex - we can test what it was trying to test without mocking out perspectives servers. * Fix warnings about finished logcontexts in the keyring We need to make sure that we finish the key fetching magic before we run the verifying code, to ensure that we don't mess up our logcontexts.
2020-09-25Allow existing users to login via OpenID Connect. (#8345)Tdxdxoz6-17/+76
Co-authored-by: Benjamin Koch <bbbsnowball@gmail.com> This adds configuration flags that will match a user to pre-existing users when logging in via OpenID Connect. This is useful when switching to an existing SSO system.
2020-09-25Fix schema delta for servers that have not backfilled (#8396)Erik Johnston3-2/+9
Fixes #8395.
2020-09-24Fix MultiWriteIdGenerator's handling of restarts. (#8374)Erik Johnston7-30/+274
On startup `MultiWriteIdGenerator` fetches the maximum stream ID for each instance from the table and uses that as its initial "current position" for each writer. This is problematic as a) it involves either a scan of events table or an index (neither of which is ideal), and b) if rows are being persisted out of order elsewhere while the process restarts then using the maximum stream ID is not correct. This could theoretically lead to race conditions where e.g. events that are persisted out of order are not sent down sync streams. We fix this by creating a new table that tracks the current positions of each writer to the stream, and update it each time we finish persisting a new entry. This is a relatively small overhead when persisting events. However for the cache invalidation stream this is a much bigger relative overhead, so instead we note that for invalidation we don't actually care about reliability over restarts (as there's no caches to invalidate) and simply don't bother reading and writing to the new table in that particular case.
2020-09-24s/URLs/variables in changelog v1.20.1 github/release-v1.20.1 release-v1.20.1Andrew Morgan1-1/+1
2020-09-24s/accidentally/incorrectly in changelogAndrew Morgan1-1/+1
2020-09-24Update changelog wordingAndrew Morgan1-1/+1
2020-09-241.20.1Andrew Morgan5-3/+17
2020-09-24Mark the shadow_banned column as boolean in synapse_port_db. (#8386)Patrick Cloke3-0/+2
2020-09-24Hotfix: disable autoescape by default when rendering Jinja2 templates (#8394)Andrew Morgan3-3/+12
#8037 changed the default `autoescape` option when rendering Jinja2 templates from `False` to `True`. This caused some bugs, noticeably around redirect URLs being escaped in SAML2 auth confirmation templates, causing those URLs to break for users. This change returns the previous behaviour as it stood. We may want to look at each template individually and see whether autoescaping is a good idea at some point, but for now lets just fix the breakage.
2020-09-24Add type annotations to SimpleHttpClient (#8372)Richard van der Hoff4-61/+143
2020-09-24Add new sequences to port DB script (#8387)Erik Johnston2-0/+25
2020-09-24Add EventStreamPosition type (#8388)Erik Johnston11-57/+100
The idea is to remove some of the places we pass around `int`, where it can represent one of two things: 1. the position of an event in the stream; or 2. a token that partitions the stream, used as part of the stream tokens. The valid operations are then: 1. did a position happen before or after a token; 2. get all events that happened before or after a token; and 3. get all events between two tokens. (Note that we don't want to allow other operations as we want to change the tokens to be vector clocks rather than simple ints)
2020-09-24Mark the shadow_banned column as boolean in synapse_port_db. (#8386)Patrick Cloke3-0/+2
2020-09-23Factor out `_send_dummy_event_for_room` (#8370)Richard van der Hoff2-48/+55
this makes it possible to use from the manhole, and seems cleaner anyway.
2020-09-23Improve logging of state resolution (#8371)Richard van der Hoff2-48/+17
I'd like to get a better insight into what we are doing with respect to state res. The list of state groups we are resolving across should be short (if it isn't, that's a massive problem in itself), so it should be fine to log it in ite entiretly. I've done some grepping and found approximately zero cases in which the "shortcut" code delivered the result, so I've ripped that out too.
2020-09-23Fix bug which caused failure on join with malformed membership events (#8385)Richard van der Hoff2-3/+8
2020-09-23Use `async with` for ID gens (#8383)Erik Johns