diff options
author | Brendan Abolivier <babolivier@matrix.org> | 2022-02-08 11:20:32 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-02-08 11:20:32 +0100 |
commit | 0640f8ebaa34e10a69ad7481b738ae36fda1c103 (patch) | |
tree | 6d3338f20c460d126885a033b16657b42af1bfc4 /docs | |
parent | Fix historical messages backfilling in random order on remote homeservers (MS... (diff) | |
download | synapse-0640f8ebaa34e10a69ad7481b738ae36fda1c103.tar.xz |
Add a callback to allow modules to deny 3PID (#11854)
Part of the Tchap Synapse mainlining. This allows modules to implement extra logic to figure out whether a given 3PID can be added to the local homeserver. In the Tchap use case, this will allow a Synapse module to interface with the custom endpoint /internal_info.
Diffstat (limited to 'docs')
-rw-r--r-- | docs/modules/password_auth_provider_callbacks.md | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/docs/modules/password_auth_provider_callbacks.md b/docs/modules/password_auth_provider_callbacks.md index 3697e3782e..88b59bb09e 100644 --- a/docs/modules/password_auth_provider_callbacks.md +++ b/docs/modules/password_auth_provider_callbacks.md @@ -166,6 +166,25 @@ any of the subsequent implementations of this callback. If every callback return the username provided by the user is used, if any (otherwise one is automatically generated). +## `is_3pid_allowed` + +_First introduced in Synapse v1.53.0_ + +```python +async def is_3pid_allowed(self, medium: str, address: str, registration: bool) -> bool +``` + +Called when attempting to bind a third-party identifier (i.e. an email address or a phone +number). The module is given the medium of the third-party identifier (which is `email` if +the identifier is an email address, or `msisdn` if the identifier is a phone number) and +its address, as well as a boolean indicating whether the attempt to bind is happening as +part of registering a new user. The module must return a boolean indicating whether the +identifier can be allowed to be bound to an account on the local homeserver. + +If multiple modules implement this callback, they will be considered in order. If a +callback returns `True`, Synapse falls through to the next one. The value of the first +callback that does not return `True` will be used. If this happens, Synapse will not call +any of the subsequent implementations of this callback. ## Example |