Fix a long-standing bug where Synapse would not unbind third-party identifiers for Application Service users when deactivated and would not emit a compliant response. (#16617)
* Don't skip unbinding 3PIDs and returning success status when deactivating AS user Fixes #16608 * Newsfile Signed-off-by: Olivier Wilkinson (reivilibre) <oliverw@matrix.org> --------- Signed-off-by: Olivier Wilkinson (reivilibre) <oliverw@matrix.org>pull/16622/head
parent
bc4372ad81
commit
dc7f068d9c
|
@ -0,0 +1 @@
|
||||||
|
Fix a long-standing bug where Synapse would not unbind third-party identifiers for Application Service users when deactivated and would not emit a compliant response.
|
|
@ -299,19 +299,16 @@ class DeactivateAccountRestServlet(RestServlet):
|
||||||
|
|
||||||
requester = await self.auth.get_user_by_req(request)
|
requester = await self.auth.get_user_by_req(request)
|
||||||
|
|
||||||
# allow ASes to deactivate their own users
|
# allow ASes to deactivate their own users:
|
||||||
if requester.app_service:
|
# ASes don't need user-interactive auth
|
||||||
await self._deactivate_account_handler.deactivate_account(
|
if not requester.app_service:
|
||||||
requester.user.to_string(), body.erase, requester
|
await self.auth_handler.validate_user_via_ui_auth(
|
||||||
|
requester,
|
||||||
|
request,
|
||||||
|
body.dict(exclude_unset=True),
|
||||||
|
"deactivate your account",
|
||||||
)
|
)
|
||||||
return 200, {}
|
|
||||||
|
|
||||||
await self.auth_handler.validate_user_via_ui_auth(
|
|
||||||
requester,
|
|
||||||
request,
|
|
||||||
body.dict(exclude_unset=True),
|
|
||||||
"deactivate your account",
|
|
||||||
)
|
|
||||||
result = await self._deactivate_account_handler.deactivate_account(
|
result = await self._deactivate_account_handler.deactivate_account(
|
||||||
requester.user.to_string(), body.erase, requester, id_server=body.id_server
|
requester.user.to_string(), body.erase, requester, id_server=body.id_server
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in New Issue