def do_signup(self, full_id, password): log.msg('SIGNUP for %s' % full_id) _, provider_id = config.get_username_and_provider(full_id) provider = config.Provider(provider_id) d = provider.callWhenReady(self._do_signup, full_id, password) return d
def _get_session(self, full_id, password=""): if full_id in self._sessions: return self._sessions[full_id] # TODO if password/username null, then pass AnonymousCreds # TODO use twisted.cred instead username, provider_id = config.get_username_and_provider(full_id) credentials = UsernamePassword(username, password) api = self._get_api(provider_id) provider_pem = _get_provider_ca_path(provider_id) session = Session(credentials, api, provider_pem) self._sessions[full_id] = session return session
def _do_signup(self, full_id, password): # XXX check it's unauthenticated def return_user(result, _session): return_code, user = result if return_code == OK: return user username, _ = config.get_username_and_provider(full_id) # XXX get deferred? session = self._get_session(full_id, password) d = session.signup(username, password) d.addCallback(return_user, session) return d
def do_authenticate(self, full_id, password): _, provider_id = config.get_username_and_provider(full_id) provider = config.Provider(provider_id) 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): _, provider_id = config.get_username_and_provider(full_id) provider = config.Provider(provider_id) 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 _get_provider_from_full_userid(userid): _, provider_id = config.get_username_and_provider(userid) return config.Provider(provider_id)