diff options
author | Kali Kaneko (leap communications) <kali@leap.se> | 2016-02-17 11:11:09 -0400 |
---|---|---|
committer | Kali Kaneko (leap communications) <kali@leap.se> | 2016-02-17 19:28:04 -0400 |
commit | 47bdaac984f0d72553525e43a6f2a7e9c502f177 (patch) | |
tree | bc048f5fba81da0e3fcaf904ca6f7ad16fb3186c /src/leap/bonafide/_protocol.py | |
parent | ef495728c961cbed727a2eb53d31f21612a55621 (diff) |
two-step bootstrap if needs authentication
Diffstat (limited to 'src/leap/bonafide/_protocol.py')
-rw-r--r-- | src/leap/bonafide/_protocol.py | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/leap/bonafide/_protocol.py b/src/leap/bonafide/_protocol.py index de959c4..e66be19 100644 --- a/src/leap/bonafide/_protocol.py +++ b/src/leap/bonafide/_protocol.py @@ -101,13 +101,23 @@ class BonafideProtocol(object): _, provider_id = config.get_username_and_provider(full_id) provider = config.Provider(provider_id) - d = provider.callWhenReady(self._do_authenticate, full_id, password) + + def maybe_finish_provider_bootstrap(result, provider): + session = self._get_session(full_id, password) + d = provider.download_services_config_with_auth(session) + d.addCallback(lambda _: result) + return d + + d = provider.callWhenMainConfigReady( + self._do_authenticate, full_id, password) + d.addCallback(maybe_finish_provider_bootstrap, provider) return d def _do_authenticate(self, full_id, password): def return_token_and_uuid(result, _session): if result == OK: + # TODO -- turn this into JSON response return str(_session.token), str(_session.uuid) log.msg('AUTH for %s' % full_id) |