mirror of
https://github.com/element-hq/synapse.git
synced 2024-12-21 12:14:29 +03:00
add option to disable changes to the 3PIDs for an account.
This only considers the /account/3pid API, which should be sufficient as currently we can't change emails associated with push notifs (which are provisioned at registration), and we can't directly create mappings for accounts in an IS other than by answering an invite
This commit is contained in:
parent
50d5a97c1b
commit
8a24c4eee5
2 changed files with 14 additions and 0 deletions
|
@ -37,6 +37,9 @@ class RegistrationConfig(Config):
|
||||||
"check_is_for_allowed_local_3pids", None
|
"check_is_for_allowed_local_3pids", None
|
||||||
)
|
)
|
||||||
self.allow_invited_3pids = config.get("allow_invited_3pids", False)
|
self.allow_invited_3pids = config.get("allow_invited_3pids", False)
|
||||||
|
|
||||||
|
self.disable_3pid_changes = config.get("disable_3pid_changes", False)
|
||||||
|
|
||||||
self.registration_shared_secret = config.get("registration_shared_secret")
|
self.registration_shared_secret = config.get("registration_shared_secret")
|
||||||
|
|
||||||
self.bcrypt_rounds = config.get("bcrypt_rounds", 12)
|
self.bcrypt_rounds = config.get("bcrypt_rounds", 12)
|
||||||
|
@ -89,6 +92,11 @@ class RegistrationConfig(Config):
|
||||||
# - medium: msisdn
|
# - medium: msisdn
|
||||||
# pattern: "\\+44"
|
# pattern: "\\+44"
|
||||||
|
|
||||||
|
# If true, stop users from trying to change the 3PIDs associated with
|
||||||
|
# their accounts.
|
||||||
|
#
|
||||||
|
# disable_3pid_changes: True
|
||||||
|
|
||||||
# If set, allows registration by anyone who also has the shared
|
# If set, allows registration by anyone who also has the shared
|
||||||
# secret, even if registration is otherwise disabled.
|
# secret, even if registration is otherwise disabled.
|
||||||
registration_shared_secret: "%(registration_shared_secret)s"
|
registration_shared_secret: "%(registration_shared_secret)s"
|
||||||
|
|
|
@ -314,6 +314,9 @@ class ThreepidRestServlet(RestServlet):
|
||||||
def on_POST(self, request):
|
def on_POST(self, request):
|
||||||
yield run_on_reactor()
|
yield run_on_reactor()
|
||||||
|
|
||||||
|
if self.hs.config.disable_3pid_changes:
|
||||||
|
raise SynapseError(400, "3PID changes disabled on this server")
|
||||||
|
|
||||||
body = parse_json_object_from_request(request)
|
body = parse_json_object_from_request(request)
|
||||||
|
|
||||||
threePidCreds = body.get('threePidCreds')
|
threePidCreds = body.get('threePidCreds')
|
||||||
|
@ -367,6 +370,9 @@ class ThreepidDeleteRestServlet(RestServlet):
|
||||||
def on_POST(self, request):
|
def on_POST(self, request):
|
||||||
yield run_on_reactor()
|
yield run_on_reactor()
|
||||||
|
|
||||||
|
if self.hs.config.disable_3pid_changes:
|
||||||
|
raise SynapseError(400, "3PID changes disabled on this server")
|
||||||
|
|
||||||
body = parse_json_object_from_request(request)
|
body = parse_json_object_from_request(request)
|
||||||
|
|
||||||
required = ['medium', 'address']
|
required = ['medium', 'address']
|
||||||
|
|
Loading…
Reference in a new issue