Merge pull request #3180 from matrix-org/matthew/disable-3pid-changes

add option to disable changes to the 3PIDs for an account.
This commit is contained in:
Matthew Hodgson 2018-05-03 18:19:58 +01:00 committed by GitHub
commit f639ac143d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 0 deletions

View File

@ -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)
@ -92,6 +95,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: False
# 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"

View File

@ -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']