diff options
author | Travis Ralston <travpc@gmail.com> | 2017-11-12 23:30:23 -0700 |
---|---|---|
committer | Travis Ralston <travpc@gmail.com> | 2017-11-12 23:39:38 -0700 |
commit | 2d314b771f032441595f931210fde67d25b90075 (patch) | |
tree | e7a869779bf0f94f111f241f74843a72822b5187 | |
parent | Merge pull request #2662 from matrix-org/rav/fix_mxids_again (diff) | |
download | synapse-2d314b771f032441595f931210fde67d25b90075.tar.xz |
Add a route for determining who you are
Useful for applications which may have an access token, but no idea as to who owns it. Signed-off-by: Travis Ralston <travpc@gmail.com>
-rw-r--r-- | synapse/rest/client/v2_alpha/account.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/synapse/rest/client/v2_alpha/account.py b/synapse/rest/client/v2_alpha/account.py index 3062e04c59..0efbcb10d7 100644 --- a/synapse/rest/client/v2_alpha/account.py +++ b/synapse/rest/client/v2_alpha/account.py @@ -382,6 +382,22 @@ class ThreepidDeleteRestServlet(RestServlet): defer.returnValue((200, {})) +class WhoamiRestServlet(RestServlet): + PATTERNS = client_v2_patterns("/account/whoami$") + + def __init__(self, hs): + super(WhoamiRestServlet, self).__init__() + self.auth = hs.get_auth() + + @defer.inlineCallbacks + def on_GET(self, request): + yield run_on_reactor() + + requester = yield self.auth.get_user_by_req(request) + + defer.returnValue((200, {'user_id': requester.user.to_string()})) + + def register_servlets(hs, http_server): EmailPasswordRequestTokenRestServlet(hs).register(http_server) MsisdnPasswordRequestTokenRestServlet(hs).register(http_server) @@ -391,3 +407,4 @@ def register_servlets(hs, http_server): MsisdnThreepidRequestTokenRestServlet(hs).register(http_server) ThreepidRestServlet(hs).register(http_server) ThreepidDeleteRestServlet(hs).register(http_server) + WhoamiRestServlet(hs).register(http_server) |