diff options
author | Erik Johnston <erik@matrix.org> | 2015-10-12 15:06:18 +0100 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2015-10-12 15:06:18 +0100 |
commit | f6fde343a10890e2e8a509e82babb34dd0fbaf06 (patch) | |
tree | eab85df2d409119042a731667bd1cec1bc70028f /synapse/handlers/auth.py | |
parent | Remove unused room_id parameter (diff) | |
parent | Merge pull request #296 from matrix-org/markjh/eventstream_presence (diff) | |
download | synapse-f6fde343a10890e2e8a509e82babb34dd0fbaf06.tar.xz |
Merge remote-tracking branch 'origin/develop' into erikj/search
Diffstat (limited to 'synapse/handlers/auth.py')
-rw-r--r-- | synapse/handlers/auth.py | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/synapse/handlers/auth.py b/synapse/handlers/auth.py index 793b3fcd8b..484f719253 100644 --- a/synapse/handlers/auth.py +++ b/synapse/handlers/auth.py @@ -296,6 +296,38 @@ class AuthHandler(BaseHandler): defer.returnValue((user_id, access_token, refresh_token)) @defer.inlineCallbacks + def login_with_cas_user_id(self, user_id): + """ + Authenticates the user with the given user ID, + intended to have been captured from a CAS response + + Args: + user_id (str): User ID + Returns: + A tuple of: + The user's ID. + The access token for the user's session. + The refresh token for the user's session. + Raises: + StoreError if there was a problem storing the token. + LoginError if there was an authentication problem. + """ + user_id, ignored = yield self._find_user_id_and_pwd_hash(user_id) + + logger.info("Logging in user %s", user_id) + access_token = yield self.issue_access_token(user_id) + refresh_token = yield self.issue_refresh_token(user_id) + defer.returnValue((user_id, access_token, refresh_token)) + + @defer.inlineCallbacks + def does_user_exist(self, user_id): + try: + yield self._find_user_id_and_pwd_hash(user_id) + defer.returnValue(True) + except LoginError: + defer.returnValue(False) + + @defer.inlineCallbacks def _find_user_id_and_pwd_hash(self, user_id): """Checks to see if a user with the given id exists. Will check case insensitively, but will throw if there are multiple inexact matches. |