diff options
-rw-r--r-- | src/leap/bitmask/services/mail/repair.py | 32 |
1 files changed, 8 insertions, 24 deletions
diff --git a/src/leap/bitmask/services/mail/repair.py b/src/leap/bitmask/services/mail/repair.py index 660e9f11..e921e207 100644 --- a/src/leap/bitmask/services/mail/repair.py +++ b/src/leap/bitmask/services/mail/repair.py @@ -23,8 +23,8 @@ import os from collections import defaultdict +from leap.bitmask.config.leapsettings import LeapSettings from leap.bitmask.config.providerconfig import ProviderConfig -from leap.bitmask.crypto.srpauth import SRPAuth from leap.bitmask.util import get_path_prefix from leap.bitmask.services.soledad.soledadbootstrapper import get_db_paths @@ -104,6 +104,8 @@ class MBOXPlumber(object): user, provider = userid.split('@') self.user = user self.sol = None + self._settings = LeapSettings() + provider_config_path = os.path.join( get_path_prefix(), "leap", "providers", @@ -114,34 +116,17 @@ class MBOXPlumber(object): print "could not load provider config!" return self.exit() - self.srp = SRPAuth(provider_config) - self.srp.authentication_finished.connect(self.repair_account) - - def start_auth(self): - """ - returns the user identifier for a given provider. - - :param provider: the provider to which we authenticate against. - """ - print "Authenticating with provider..." - self.d = self.srp.authenticate(self.user, self.passwd) - def repair_account(self, *args): """ Gets the user id for this account. """ - print "Got authenticated." - - # XXX this won't be needed anymore after we keep a local - # cache of user uuids, so we'll be able to pick it from - # there. - self.uuid = self.srp.get_uuid() + self.uuid = self._settings.get_uuid(self.userid) if not self.uuid: - print "Got BAD UUID from provider!" + print "Cannot get UUID from settings. Log in at least once." return self.exit() print "UUID: %s" % (self.uuid) - secrets, localdb = get_db_paths(self.uid) + secrets, localdb = get_db_paths(self.uuid) self.sol = initialize_soledad( self.uuid, self.userid, self.passwd, @@ -168,7 +153,7 @@ class MBOXPlumber(object): print "There are %s messages" % (len_mbox,) last_ok = True if mbox.last_uid == len_mbox else False - uids_iter = (doc.content['uid'] for doc in mbox.messages.get_all()) + uids_iter = mbox.messages.all_msg_iter() dupes = self._has_dupes(uids_iter) if last_ok and not dupes: print "Mbox does not need repair." @@ -204,7 +189,6 @@ class MBOXPlumber(object): def exit(self): from twisted.internet import reactor - self.d.cancel() if self.sol: self.sol.close() try: @@ -224,7 +208,7 @@ def repair_account(userid): # go mario! plumber = MBOXPlumber(userid, passwd) - reactor.callLater(1, plumber.start_auth) + reactor.callLater(1, plumber.repair_account) reactor.run() |