diff options
author | Matthew Hodgson <matthew@matrix.org> | 2018-11-04 01:03:56 +0000 |
---|---|---|
committer | Matthew Hodgson <matthew@matrix.org> | 2018-11-04 01:03:56 +0000 |
commit | 56eb39ac7d4e9321472d6c0072d7cacd18d6a871 (patch) | |
tree | d41438973968e48fda024e277f24c706d2145121 | |
parent | fix typos (diff) | |
download | synapse-matthew/shadow-server.tar.xz |
make account shadowing work github/matthew/shadow-server matthew/shadow-server
-rw-r--r-- | synapse/rest/client/v2_alpha/account.py | 34 |
1 files changed, 22 insertions, 12 deletions
diff --git a/synapse/rest/client/v2_alpha/account.py b/synapse/rest/client/v2_alpha/account.py index 8904882f01..d085951b23 100644 --- a/synapse/rest/client/v2_alpha/account.py +++ b/synapse/rest/client/v2_alpha/account.py @@ -29,6 +29,7 @@ from synapse.http.servlet import ( ) from synapse.util.msisdn import phone_number_to_msisdn from synapse.util.threepids import check_3pid_allowed +from synapse.types import UserID from ._base import client_v2_patterns, interactive_auth_handler @@ -179,7 +180,10 @@ class PasswordRestServlet(RestServlet): ) if self.hs.config.shadow_server: - self.shadow_password(params) + shadow_user = UserID( + requester.user.localpart, self.hs.config.shadow_server.get("hs") + ) + self.shadow_password(params, shadow_user.to_string()) defer.returnValue((200, {})) @@ -187,14 +191,14 @@ class PasswordRestServlet(RestServlet): return 200, {} @defer.inlineCallbacks - def shadow_password(self, body): + def shadow_password(self, body, user_id): # TODO: retries shadow_hs_url = self.hs.config.shadow_server.get("hs_url") as_token = self.hs.config.shadow_server.get("as_token") yield self.http_client.post_json_get_json( - "%s/_matrix/client/r0/account/password?access_token=%s" % ( - shadow_hs_url, as_token + "%s/_matrix/client/r0/account/password?access_token=%s&user_id=%s" % ( + shadow_hs_url, as_token, user_id, ), body ) @@ -393,19 +397,22 @@ class ThreepidRestServlet(RestServlet): ) if self.hs.config.shadow_server: - self.shadow_3pid({'threepid': threepid}) + shadow_user = UserID( + requester.user.localpart, self.hs.config.shadow_server.get("hs") + ) + self.shadow_3pid({'threepid': threepid}, shadow_user.to_string()) defer.returnValue((200, {})) @defer.inlineCallbacks - def shadow_3pid(self, body): + def shadow_3pid(self, body, user_id): # TODO: retries shadow_hs_url = self.hs.config.shadow_server.get("hs_url") as_token = self.hs.config.shadow_server.get("as_token") yield self.http_client.post_json_get_json( - "%s/_matrix/client/r0/account/3pid?access_token=%s" % ( - shadow_hs_url, as_token + "%s/_matrix/client/r0/account/3pid?access_token=%s&user_id=%s" % ( + shadow_hs_url, as_token, user_id, ), body ) @@ -444,7 +451,10 @@ class ThreepidDeleteRestServlet(RestServlet): raise SynapseError(500, "Failed to remove threepid") if self.hs.config.shadow_server: - self.shadow_3pid_delete(body) + shadow_user = UserID( + requester.user.localpart, self.hs.config.shadow_server.get("hs") + ) + self.shadow_3pid_delete(body, shadow_user.to_string()) if ret: id_server_unbind_result = "success" @@ -456,14 +466,14 @@ class ThreepidDeleteRestServlet(RestServlet): })) @defer.inlineCallbacks - def shadow_3pid_delete(self, body): + def shadow_3pid_delete(self, body, user_id): # TODO: retries shadow_hs_url = self.hs.config.shadow_server.get("hs_url") as_token = self.hs.config.shadow_server.get("as_token") yield self.http_client.post_json_get_json( - "%s/_matrix/client/r0/account/3pid/delete?access_token=%s" % ( - shadow_hs_url, as_token + "%s/_matrix/client/r0/account/3pid/delete?access_token=%s&user_id=%s" % ( + shadow_hs_url, as_token, user_id ), body ) |