Unbind 3pids when they're deleted too

This commit is contained in:
David Baker 2018-05-24 11:08:05 +01:00
parent 2c7866d664
commit b3bff53178
2 changed files with 18 additions and 3 deletions

View File

@ -825,6 +825,14 @@ class AuthHandler(BaseHandler):
if medium == 'email':
address = address.lower()
identity_handler = self.hs.get_handlers().identity_handler
identity_handler.unbind_threepid(user_id,
{
'medium': medium,
'address': address,
},
)
ret = yield self.store.user_delete_threepid(
user_id, medium, address,
)

View File

@ -381,9 +381,16 @@ class ThreepidDeleteRestServlet(RestServlet):
requester = yield self.auth.get_user_by_req(request)
user_id = requester.user.to_string()
try:
yield self.auth_handler.delete_threepid(
user_id, body['medium'], body['address']
)
except Exception as e:
# NB. This endpoint should succeed if there is nothing to
# delete, so it should only throw if something is wrong
# that we ought to care about.
logger.exception("Failed to remove threepid")
raise SynapseError(500, "Failed to remove threepid")
defer.returnValue((200, {}))