1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-23 03:33:54 +00:00

Moved vault to cached folders/sites

This commit is contained in:
Kyle Spearrin
2016-09-15 21:09:56 -04:00
parent 16a59f8d09
commit 6f142c3682
4 changed files with 118 additions and 51 deletions

View File

@@ -2,11 +2,37 @@
this.cryptoService = cryptoService;
this.userService = userService;
this.apiService = apiService;
this.decryptedFolderCache = null;
initFolderService();
};
function initFolderService() {
FolderService.prototype.encrypt = function (folder) {
var model = {
id: folder.id
};
var deferred = Q.defer();
encryptWithPromise(folder.name).then(function (cs) {
model.name = cs;
deferred.resolve(model);
});
return deferred.promise;
};
function encryptWithPromise(plaintextString) {
var deferred = Q.defer();
cryptoService.encrypt(plaintextString, function (cipherString) {
deferred.resolve(cipherString);
});
return deferred.promise;
}
FolderService.prototype.get = function (id, callback) {
if (!callback || typeof callback !== 'function') {
throw 'callback function required';
@@ -48,6 +74,33 @@ function initFolderService() {
});
};
FolderService.prototype.getAllDecrypted = function () {
var deferred = Q.defer();
var self = this;
if (self.decryptedFolderCache) {
deferred.resolve(self.decryptedFolderCache);
return deferred.promise;
}
var promises = [];
var decFolders = [];
self.getAll(function (folders) {
for (var i = 0; i < folders.length; i++) {
promises.push(folders[i].decrypt().then(function (folder) {
decFolders.push(folder);
}));
}
Q.all(promises).then(function () {
self.decryptedFolderCache = decFolders;
deferred.resolve(self.decryptedFolderCache);
});
});
return deferred.promise;
};
FolderService.prototype.saveWithServer = function (folder, callback) {
if (!callback || typeof callback !== 'function') {
throw 'callback function required';

View File

@@ -2,6 +2,7 @@
this.cryptoService = cryptoService;
this.userService = userService;
this.apiService = apiService;
this.decryptedSiteCache = null;
initSiteService();
};
@@ -90,6 +91,33 @@ function initSiteService() {
});
};
SiteService.prototype.getAllDecrypted = function () {
var deferred = Q.defer();
var self = this;
if (self.decryptedSiteCache) {
deferred.resolve(self.decryptedSiteCache);
return deferred.promise;
}
var promises = [];
var decSites = [];
self.getAll(function (sites) {
for (var i = 0; i < sites.length; i++) {
promises.push(sites[i].decrypt().then(function (site) {
decSites.push(site);
}));
}
Q.all(promises).then(function () {
self.decryptedSiteCache = decSites;
deferred.resolve(self.decryptedSiteCache);
});
});
return deferred.promise;
};
SiteService.prototype.saveWithServer = function (site, successCallback, errorCallback) {
var self = this,
request = new SiteRequest(site);