diff options
author | Mathieu Velten <mathieuv@matrix.org> | 2023-08-22 16:47:59 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-22 14:47:59 +0000 |
commit | 0ba17777be81ba9457defb407112b664042a14d2 (patch) | |
tree | 3eea0de6202c4686023bce0c08691eb9c9f90342 /synapse | |
parent | Add an admin endpoint to allow authorizing server to signal token revocations... (diff) | |
download | synapse-0ba17777be81ba9457defb407112b664042a14d2.tar.xz |
Disable `m.3pid_changes` capability when MSC3861 is enabled. (#16134)
Diffstat (limited to 'synapse')
-rw-r--r-- | synapse/config/experimental.py | 6 | ||||
-rw-r--r-- | synapse/config/registration.py | 11 |
2 files changed, 16 insertions, 1 deletions
diff --git a/synapse/config/experimental.py b/synapse/config/experimental.py index d4cf9a0555..277ea4675b 100644 --- a/synapse/config/experimental.py +++ b/synapse/config/experimental.py @@ -223,6 +223,12 @@ class MSC3861: ("session_lifetime",), ) + if root.registration.enable_3pid_changes: + raise ConfigError( + "enable_3pid_changes cannot be enabled when OAuth delegation is enabled", + ("enable_3pid_changes",), + ) + @attr.s(auto_attribs=True, frozen=True, slots=True) class MSC3866Config: diff --git a/synapse/config/registration.py b/synapse/config/registration.py index df1d83dfaa..b8ad6fbc06 100644 --- a/synapse/config/registration.py +++ b/synapse/config/registration.py @@ -133,7 +133,16 @@ class RegistrationConfig(Config): self.enable_set_displayname = config.get("enable_set_displayname", True) self.enable_set_avatar_url = config.get("enable_set_avatar_url", True) - self.enable_3pid_changes = config.get("enable_3pid_changes", True) + + # The default value of enable_3pid_changes is True, unless msc3861 is enabled. + msc3861_enabled = ( + (config.get("experimental_features") or {}) + .get("msc3861", {}) + .get("enabled", False) + ) + self.enable_3pid_changes = config.get( + "enable_3pid_changes", not msc3861_enabled + ) self.disable_msisdn_registration = config.get( "disable_msisdn_registration", False |