1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-15 15:53:27 +00:00

bug fixes around fetching keys for org sync

This commit is contained in:
Kyle Spearrin
2017-04-26 11:59:31 -04:00
parent a20881383e
commit 1ce4b5443b

View File

@@ -84,35 +84,41 @@ function initSyncService() {
var deferred = Q.defer(); var deferred = Q.defer();
var self = this; var self = this;
self.apiService.getProfile(function (response) { function setKeys(hasPrivateKey, response, d) {
self.cryptoService.getPrivateKey().then(function (privateKey) { if (response.organizations && response.organizations.length && !hasPrivateKey) {
if (response.organizations && !privateKey) {
self.apiService.getKeys(function (keysResponse) { self.apiService.getKeys(function (keysResponse) {
if (keysResponse.privateKey) { if (keysResponse.privateKey) {
self.cryptoService.setEncPrivateKey(keysResponse.privateKey).then(function () { self.cryptoService.setEncPrivateKey(keysResponse.privateKey).then(function () {
return self.cryptoService.setOrgKeys(response.organizations); return self.cryptoService.setOrgKeys(response.organizations);
}, function () { }, function () {
deferred.reject(); d.reject();
}).then(function () { }).then(function () {
deferred.resolve(); d.resolve();
}, function () { }, function () {
deferred.reject(); d.reject();
}); });
} }
else { else {
deferred.resolve(); d.resolve();
} }
}, function () { }, function () {
deferred.reject(); d.reject();
}); });
} }
else { else {
self.cryptoService.setOrgKeys(response.organizations).then(function () { self.cryptoService.setOrgKeys(response.organizations).then(function () {
deferred.resolve(); d.resolve();
}, function () { }, function () {
deferred.reject(); d.reject();
}); });
} }
}
self.apiService.getProfile(function (response) {
self.cryptoService.getPrivateKey().then(function (privateKey) {
setKeys(!!privateKey, response, deferred);
}, function () {
setKeys(false, response, deferred);
}); });
}, function () { }, function () {
deferred.reject(); deferred.reject();