1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-22 11:13:46 +00:00

Checking for equivalent domains from settings

This commit is contained in:
Kyle Spearrin
2017-01-14 13:43:59 -05:00
parent bb56f9ee47
commit 54119e1e94
5 changed files with 37 additions and 17 deletions

View File

@@ -1,7 +1,8 @@
function LoginService(cryptoService, userService, apiService) {
function LoginService(cryptoService, userService, apiService, settingsService) {
this.cryptoService = cryptoService;
this.userService = userService;
this.apiService = apiService;
this.settingsService = settingsService;
this.decryptedLoginCache = null;
initLoginService();
@@ -133,10 +134,29 @@ function initLoginService() {
LoginService.prototype.getAllDecryptedForDomain = function (domain) {
var self = this;
return self.getAllDecrypted().then(function (logins) {
var eqDomainsPromise = self.settingsService.getEquivalentDomains().then(function (eqDomains) {
var matchingDomains = [];
for (var i = 0; i < eqDomains.length; i++) {
for (var j = 0; j < eqDomains[i].length; j++) {
if (eqDomains[i][j] === domain) {
matchingDomains = matchingDomains.concat(eqDomains[i]);
}
}
}
return matchingDomains;
});
var loginsPromise = self.getAllDecrypted().then(function (logins) {
return logins;
});
return Q.all([eqDomainsPromise, loginsPromise]).then(function (result) {
var matchingDomains = result[0];
var logins = result[1];
var loginsToReturn = [];
for (var i = 0; i < logins.length; i++) {
if (logins[i].domain === domain) {
if (logins[i].domain && matchingDomains.indexOf(logins[i].domain) >= 0) {
loginsToReturn.push(logins[i]);
}
}

View File

@@ -32,7 +32,13 @@ function initSettingsService() {
};
SettingsService.prototype.getEquivalentDomains = function (callback) {
getSettingsKey(this, 'equivalentDomains', callback);
var deferred = Q.defer();
getSettingsKey(this, 'equivalentDomains', function (domains) {
deferred.resolve(domains);
});
return deferred.promise;
};
function getSettingsKey(self, key, callback) {

View File

@@ -188,7 +188,9 @@ function initSyncService() {
}
if (response && response.globalEquivalentDomains) {
for (var i = 0; i < response.globalEquivalentDomains.length; i++) {
eqDomains = eqDomains.concat(response.globalEquivalentDomains[i].domains);
if (response.globalEquivalentDomains[i].domains.length) {
eqDomains.push(response.globalEquivalentDomains[i].domains);
}
}
}