summaryrefslogtreecommitdiff
path: root/client
diff options
context:
space:
mode:
Diffstat (limited to 'client')
-rw-r--r--client/changes/bug-7412_sync-status-broken1
-rw-r--r--client/changes/refactor_improve_http_target3
-rw-r--r--client/src/leap/soledad/client/secrets.py23
3 files changed, 12 insertions, 15 deletions
diff --git a/client/changes/bug-7412_sync-status-broken b/client/changes/bug-7412_sync-status-broken
deleted file mode 100644
index b6800bc5..00000000
--- a/client/changes/bug-7412_sync-status-broken
+++ /dev/null
@@ -1 +0,0 @@
-o Fix refactor code loss. Closes #7412.
diff --git a/client/changes/refactor_improve_http_target b/client/changes/refactor_improve_http_target
deleted file mode 100644
index a8fe5f60..00000000
--- a/client/changes/refactor_improve_http_target
+++ /dev/null
@@ -1,3 +0,0 @@
- o Split http_target into 4 modules, separating those responsibilities.
- o Refactor details of making an HTTP request body and headers out of the
- send/fetch logic. This also makes it easier to enable batching.
diff --git a/client/src/leap/soledad/client/secrets.py b/client/src/leap/soledad/client/secrets.py
index 9aadd72a..c3c3dff5 100644
--- a/client/src/leap/soledad/client/secrets.py
+++ b/client/src/leap/soledad/client/secrets.py
@@ -261,6 +261,16 @@ class SoledadSecrets(object):
logger.info("Could not find a secret in local storage.")
return False
+ def _maybe_set_active_secret(self, active_secret):
+ """
+ If no secret_id is already set, choose the passed active secret, or
+ just choose first secret available if none.
+ """
+ if not self._secret_id:
+ if not active_secret:
+ active_secret = self._secrets.items()[0][0]
+ self.set_secret_id(active_secret)
+
def _load_secrets(self):
"""
Load storage secrets from local file.
@@ -270,12 +280,7 @@ class SoledadSecrets(object):
with open(self._secrets_path, 'r') as f:
content = json.loads(f.read())
_, active_secret = self._import_recovery_document(content)
- # choose first secret if no secret_id was given
- if self._secret_id is None:
- if active_secret is None:
- self.set_secret_id(self._secrets.items()[0][0])
- else:
- self.set_secret_id(active_secret)
+ self._maybe_set_active_secret(active_secret)
# enlarge secret if needed
enlarged = False
if len(self._secrets[self._secret_id]) < self.GEN_SECRET_LENGTH:
@@ -306,12 +311,8 @@ class SoledadSecrets(object):
'Found cryptographic secrets in shared recovery '
'database.')
_, active_secret = self._import_recovery_document(doc.content)
+ self._maybe_set_active_secret(active_secret)
self._store_secrets() # save new secrets in local file
- if self._secret_id is None:
- if active_secret is None:
- self.set_secret_id(self._secrets.items()[0][0])
- else:
- self.set_secret_id(active_secret)
else:
# STAGE 3 - there are no secrets in server also, so
# generate a secret and store it in remote db.