Set proper items storage mode
This commit is contained in:
@@ -45,6 +45,9 @@ angular.module('app.frontend')
|
|||||||
storageManager.setModelStorageMode(StorageManager.Ephemeral);
|
storageManager.setModelStorageMode(StorageManager.Ephemeral);
|
||||||
storageManager.setItemsMode(storageManager.hasPasscode() ? StorageManager.FixedEncrypted : StorageManager.Ephemeral);
|
storageManager.setItemsMode(storageManager.hasPasscode() ? StorageManager.FixedEncrypted : StorageManager.Ephemeral);
|
||||||
} else {
|
} else {
|
||||||
|
storageManager.setModelStorageMode(StorageManager.Fixed);
|
||||||
|
storageManager.setItemsMode(storageManager.hasPasscode() ? StorageManager.FixedEncrypted : StorageManager.Fixed);
|
||||||
|
|
||||||
storageManager.setItem("ephemeral", JSON.stringify(false), StorageManager.Fixed);
|
storageManager.setItem("ephemeral", JSON.stringify(false), StorageManager.Fixed);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -150,12 +153,8 @@ angular.module('app.frontend')
|
|||||||
var params = {password: keys.pw, email: email};
|
var params = {password: keys.pw, email: email};
|
||||||
httpManager.postAbsolute(requestUrl, params, function(response){
|
httpManager.postAbsolute(requestUrl, params, function(response){
|
||||||
this.setEphemeral(ephemeral);
|
this.setEphemeral(ephemeral);
|
||||||
|
|
||||||
this.handleAuthResponse(response, email, url, authParams, keys);
|
this.handleAuthResponse(response, email, url, authParams, keys);
|
||||||
storageManager.setModelStorageMode(ephemeral ? StorageManager.Ephemeral : StorageManager.Fixed);
|
|
||||||
|
|
||||||
this.checkForSecurityUpdate();
|
this.checkForSecurityUpdate();
|
||||||
|
|
||||||
callback(response);
|
callback(response);
|
||||||
}.bind(this), function(response){
|
}.bind(this), function(response){
|
||||||
console.error("Error logging in", response);
|
console.error("Error logging in", response);
|
||||||
@@ -199,11 +198,8 @@ angular.module('app.frontend')
|
|||||||
|
|
||||||
httpManager.postAbsolute(requestUrl, params, function(response){
|
httpManager.postAbsolute(requestUrl, params, function(response){
|
||||||
this.setEphemeral(ephemeral);
|
this.setEphemeral(ephemeral);
|
||||||
|
|
||||||
this.handleAuthResponse(response, email, url, authParams, keys);
|
this.handleAuthResponse(response, email, url, authParams, keys);
|
||||||
|
|
||||||
storageManager.setModelStorageMode(ephemeral ? StorageManager.Ephemeral : StorageManager.Fixed);
|
|
||||||
|
|
||||||
callback(response);
|
callback(response);
|
||||||
}.bind(this), function(response){
|
}.bind(this), function(response){
|
||||||
console.error("Registration error", response);
|
console.error("Registration error", response);
|
||||||
|
|||||||
@@ -42,11 +42,14 @@ class StorageManager {
|
|||||||
if(hasPasscode) {
|
if(hasPasscode) {
|
||||||
// We don't want to save anything in fixed storage except for actual item data (in IndexedDB)
|
// We don't want to save anything in fixed storage except for actual item data (in IndexedDB)
|
||||||
this.storage = this.memoryStorage;
|
this.storage = this.memoryStorage;
|
||||||
|
this.itemsStorageMode = StorageManager.FixedEncrypted;
|
||||||
} else if(ephemeral) {
|
} else if(ephemeral) {
|
||||||
// We don't want to save anything in fixed storage as well as IndexedDB
|
// We don't want to save anything in fixed storage as well as IndexedDB
|
||||||
this.storage = this.memoryStorage;
|
this.storage = this.memoryStorage;
|
||||||
|
this.itemsStorageMode = StorageManager.Ephemeral;
|
||||||
} else {
|
} else {
|
||||||
this.storage = localStorage;
|
this.storage = localStorage;
|
||||||
|
this.itemsStorageMode = StorageManager.Fixed;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.modelStorageMode = ephemeral ? StorageManager.Ephemeral : StorageManager.Fixed;
|
this.modelStorageMode = ephemeral ? StorageManager.Ephemeral : StorageManager.Fixed;
|
||||||
@@ -69,6 +72,7 @@ class StorageManager {
|
|||||||
newStorage.setItem(key, this.storage.getItem(key));
|
newStorage.setItem(key, this.storage.getItem(key));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.itemsStorageMode = mode;
|
||||||
this.storage.clear();
|
this.storage.clear();
|
||||||
this.storage = newStorage;
|
this.storage = newStorage;
|
||||||
|
|
||||||
@@ -83,25 +87,21 @@ class StorageManager {
|
|||||||
|
|
||||||
getVault(vaultKey) {
|
getVault(vaultKey) {
|
||||||
if(vaultKey) {
|
if(vaultKey) {
|
||||||
return this.storageForVault(vaultKey);
|
if(vaultKey == StorageManager.Ephemeral || vaultKey == StorageManager.FixedEncrypted) {
|
||||||
|
return this.memoryStorage;
|
||||||
|
} else {
|
||||||
|
return localStorage;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
return this.storage;
|
return this.storage;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
storageForVault(vault) {
|
setItem(key, value, vaultKey) {
|
||||||
if(vault == StorageManager.Ephemeral || vault == StorageManager.FixedEncrypted) {
|
var storage = this.getVault(vaultKey);
|
||||||
return this.memoryStorage;
|
|
||||||
} else {
|
|
||||||
return localStorage;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
setItem(key, value, vault) {
|
|
||||||
var storage = this.getVault(vault);
|
|
||||||
storage.setItem(key, value);
|
storage.setItem(key, value);
|
||||||
|
|
||||||
if(vault === StorageManager.FixedEncrypted) {
|
if(vaultKey === StorageManager.FixedEncrypted || (!vaultKey && this.itemsStorageMode === StorageManager.FixedEncrypted)) {
|
||||||
this.writeEncryptedStorageToDisk();
|
this.writeEncryptedStorageToDisk();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -147,6 +147,7 @@ class StorageManager {
|
|||||||
var encryptedStorage = new EncryptedStorage();
|
var encryptedStorage = new EncryptedStorage();
|
||||||
// Copy over totality of current storage
|
// Copy over totality of current storage
|
||||||
encryptedStorage.storage = this.storageAsHash();
|
encryptedStorage.storage = this.storageAsHash();
|
||||||
|
|
||||||
// Save new encrypted storage in Fixed storage
|
// Save new encrypted storage in Fixed storage
|
||||||
var params = new ItemParams(encryptedStorage, this.encryptedStorageKeys);
|
var params = new ItemParams(encryptedStorage, this.encryptedStorageKeys);
|
||||||
this.setItem("encryptedStorage", JSON.stringify(params.paramsForSync()), StorageManager.Fixed);
|
this.setItem("encryptedStorage", JSON.stringify(params.paramsForSync()), StorageManager.Fixed);
|
||||||
@@ -160,6 +161,7 @@ class StorageManager {
|
|||||||
for(var key of Object.keys(encryptedStorage.storage)) {
|
for(var key of Object.keys(encryptedStorage.storage)) {
|
||||||
this.setItem(key, encryptedStorage.storage[key]);
|
this.setItem(key, encryptedStorage.storage[key]);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
hasPasscode() {
|
hasPasscode() {
|
||||||
|
|||||||
Reference in New Issue
Block a user