def _create_new_session(self, username, password, auth=None): self._create_dir(self._provider.config.leap_home) self._provider.download_certificate() auth = auth or self._auth_leap(username, password) account_email = self._provider.address_for(username) self._create_database_dir(auth.uuid) soledad = SoledadFactory.create(auth.token, auth.uuid, password, self._secrets_path(auth.uuid), self._local_db_path(auth.uuid), self._provider.discover_soledad_server(auth.uuid), LeapCertificate(self._provider).provider_api_cert) mail_store = LeapMailStore(soledad) nicknym = self._create_nicknym(account_email, auth.token, auth.uuid, soledad) smtp_client_cert = self._download_smtp_cert(auth) smtp_host, smtp_port = self._provider.smtp_info() smtp_config = LeapSMTPConfig(account_email, smtp_client_cert, smtp_host, smtp_port) return LeapSession(self._provider, auth, mail_store, soledad, nicknym, smtp_config)
def _create_new_session(self, username, password, auth): account_email = self._provider.address_for(username) self._create_database_dir(auth.uuid) api_cert = LeapCertificate(self._provider).provider_api_cert soledad = yield self.setup_soledad(auth.token, auth.uuid, password, api_cert) mail_store = LeapMailStore(soledad) keymanager = yield self.setup_keymanager(self._provider, soledad, account_email, auth.token, auth.uuid) smtp_client_cert = self._download_smtp_cert(auth) smtp_host, smtp_port = self._provider.smtp_info() smtp_config = LeapSMTPConfig(account_email, smtp_client_cert, smtp_host, smtp_port) leap_session = LeapSession(self._provider, auth, mail_store, soledad, keymanager, smtp_config) defer.returnValue(leap_session)
def start_client(self): soledad_test_folder = self._generate_soledad_test_folder_name() SearchEngine.DEFAULT_INDEX_HOME = soledad_test_folder self.cleanup = lambda: shutil.rmtree(soledad_test_folder) self.soledad = yield initialize_soledad(tempdir=soledad_test_folder) self.keymanager = mock() self.search_engine = SearchEngine(self.INDEX_KEY, agent_home=soledad_test_folder) self.mail_sender = self._create_mail_sender() self.mail_store = SearchableMailStore(LeapMailStore(self.soledad), self.search_engine) account_ready_cb = defer.Deferred() self.account = IMAPAccount(self.ACCOUNT, self.soledad, account_ready_cb) yield account_ready_cb self.draft_service = DraftService(self.mail_store) self.leap_session = mock() self.feedback_service = FeedbackService(self.leap_session) self.mail_service = self._create_mail_service(self.mail_sender, self.mail_store, self.search_engine) mails = yield self.mail_service.all_mails() self.search_engine.index_mails(mails) self.resource = RootResource() self.resource.initialize(self.keymanager, self.search_engine, self.mail_service, self.draft_service, self.feedback_service)
def start(self): soledad_test_folder = os.path.join(self._leap_home, self._uuid) self.soledad = yield initialize_soledad(tempdir=soledad_test_folder, uuid=self._uuid) self.search_engine = SearchEngine(self.INDEX_KEY, user_home=soledad_test_folder) self.keymanager = mock() self.mail_sender = self._create_mail_sender() self.mail_store = SearchableMailStore(LeapMailStore(self.soledad), self.search_engine) self.attachment_store = LeapAttachmentStore(self.soledad) yield self._initialize_imap_account() self.draft_service = DraftService(self.mail_store) self.leap_session = mock() self.feedback_service = FeedbackService(self.leap_session) self.mail_service = self._create_mail_service(self.mail_sender, self.mail_store, self.search_engine, self.attachment_store) mails = yield self.mail_service.all_mails() if len(mails) > 0: raise Exception('What? Where did these come from?') self.search_engine.index_mails(mails)
def __init__(self, userid, soledad, keymanager): self.userid = userid self.soledad = soledad # XXX this needs to be converged with our public apis. self.nicknym = NickNym(keymanager, userid) self.mail_store = LeapMailStore(soledad) self.user_auth = Config() self.user_auth.uuid = soledad.uuid self.fresh_account = False self.incoming_mail_fetcher = None self.account = Account(soledad, userid) username, provider = userid.split('@') smtp_client_cert = os.path.join( get_path_prefix(), 'leap', 'providers', provider, 'keys', 'client', 'smtp_{username}.pem'.format(username=username)) assert (os.path.isfile(smtp_client_cert)) smtp_config = get_smtp_config(provider) smtp_host = smtp_config.host smtp_port = smtp_config.port self.smtp_config = LeapSMTPConfig(userid, smtp_client_cert, smtp_host, smtp_port)
def _create_new_session(self, username, password): self._create_dir(self._provider.config.leap_home) self._provider.download_certificate() srp_auth = SRPAuth(self._provider.api_uri, self._provider.local_ca_crt) auth = srp_auth.authenticate(username, password) account_email = self._provider.address_for(username) soledad = SoledadSessionFactory.create(self._provider, auth.token, auth.uuid, password) mail_store = LeapMailStore(soledad.soledad) nicknym = self._create_nicknym(account_email, auth.token, auth.uuid, soledad) smtp = LeapSmtp(self._provider, auth, nicknym.keymanager) return LeapSession(self._provider, auth, mail_store, soledad, nicknym, smtp)