Skip to content
Snippets Groups Projects
Commit 99bbe177 authored by dklimpel's avatar dklimpel
Browse files

add disable_3pid_changes

parent 20545a21
No related branches found
No related tags found
No related merge requests found
...@@ -1065,6 +1065,11 @@ account_threepid_delegates: ...@@ -1065,6 +1065,11 @@ account_threepid_delegates:
#disable_set_displayname: false #disable_set_displayname: false
#disable_set_avatar_url: false #disable_set_avatar_url: false
# If true, stop users from trying to change the 3PIDs associated with
# their accounts.
#
#disable_3pid_changes: false
# Users who register on this homeserver will automatically be joined # Users who register on this homeserver will automatically be joined
# to these rooms # to these rooms
# #
......
...@@ -131,6 +131,7 @@ class RegistrationConfig(Config): ...@@ -131,6 +131,7 @@ class RegistrationConfig(Config):
self.disable_set_displayname = config.get("disable_set_displayname", False) self.disable_set_displayname = config.get("disable_set_displayname", False)
self.disable_set_avatar_url = config.get("disable_set_avatar_url", False) self.disable_set_avatar_url = config.get("disable_set_avatar_url", False)
self.disable_3pid_changes = config.get("disable_3pid_changes", False)
self.disable_msisdn_registration = config.get( self.disable_msisdn_registration = config.get(
"disable_msisdn_registration", False "disable_msisdn_registration", False
...@@ -341,6 +342,11 @@ class RegistrationConfig(Config): ...@@ -341,6 +342,11 @@ class RegistrationConfig(Config):
#disable_set_displayname: false #disable_set_displayname: false
#disable_set_avatar_url: false #disable_set_avatar_url: false
# If true, stop users from trying to change the 3PIDs associated with
# their accounts.
#
#disable_3pid_changes: false
# Users who register on this homeserver will automatically be joined # Users who register on this homeserver will automatically be joined
# to these rooms # to these rooms
# #
......
...@@ -599,6 +599,9 @@ class ThreepidRestServlet(RestServlet): ...@@ -599,6 +599,9 @@ class ThreepidRestServlet(RestServlet):
return 200, {"threepids": threepids} return 200, {"threepids": threepids}
async def on_POST(self, request): async def on_POST(self, request):
if self.hs.config.disable_3pid_changes:
raise SynapseError(400, "3PID changes disabled on this server")
requester = await self.auth.get_user_by_req(request) requester = await self.auth.get_user_by_req(request)
user_id = requester.user.to_string() user_id = requester.user.to_string()
body = parse_json_object_from_request(request) body = parse_json_object_from_request(request)
...@@ -643,6 +646,9 @@ class ThreepidAddRestServlet(RestServlet): ...@@ -643,6 +646,9 @@ class ThreepidAddRestServlet(RestServlet):
@interactive_auth_handler @interactive_auth_handler
async def on_POST(self, request): async def on_POST(self, request):
if self.hs.config.disable_3pid_changes:
raise SynapseError(400, "3PID changes disabled on this server")
requester = await self.auth.get_user_by_req(request) requester = await self.auth.get_user_by_req(request)
user_id = requester.user.to_string() user_id = requester.user.to_string()
body = parse_json_object_from_request(request) body = parse_json_object_from_request(request)
...@@ -738,10 +744,14 @@ class ThreepidDeleteRestServlet(RestServlet): ...@@ -738,10 +744,14 @@ class ThreepidDeleteRestServlet(RestServlet):
def __init__(self, hs): def __init__(self, hs):
super(ThreepidDeleteRestServlet, self).__init__() super(ThreepidDeleteRestServlet, self).__init__()
self.hs = hs
self.auth = hs.get_auth() self.auth = hs.get_auth()
self.auth_handler = hs.get_auth_handler() self.auth_handler = hs.get_auth_handler()
async def on_POST(self, request): async def on_POST(self, request):
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)
assert_params_in_dict(body, ["medium", "address"]) assert_params_in_dict(body, ["medium", "address"])
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment