diff --git a/src/popup/app/accounts/views/accountsLoginTwoFactor.html b/src/popup/app/accounts/views/accountsLoginTwoFactor.html index 49e3accb..a43d4568 100644 --- a/src/popup/app/accounts/views/accountsLoginTwoFactor.html +++ b/src/popup/app/accounts/views/accountsLoginTwoFactor.html @@ -16,7 +16,7 @@
- +
diff --git a/src/popup/app/vault/vaultController.js b/src/popup/app/vault/vaultController.js index 48227b46..22a85360 100644 --- a/src/popup/app/vault/vaultController.js +++ b/src/popup/app/vault/vaultController.js @@ -64,10 +64,6 @@ return item.name.toLowerCase(); }; - $scope.filterByFolder = function (folder) { - - }; - $scope.searchSites = function () { if (!$scope.searchText) { return; diff --git a/src/services/apiService.js b/src/services/apiService.js index 5007268b..1c786b5c 100644 --- a/src/services/apiService.js +++ b/src/services/apiService.js @@ -1,4 +1,4 @@ -function ApiService(tokenService) { +function ApiService(tokenService) { this.baseUrl = 'https://api.bitwarden.com'; this.tokenService = tokenService; @@ -269,6 +269,11 @@ function initApiService() { // Helpers function handleError(errorCallback, jqXHR, textStatus, errorThrown) { + if (jqXHR.status === 401 || jqXHR.status === 403) { + chrome.runtime.sendMessage(null, { command: 'logout' }); + return; + } + errorCallback(new ErrorResponse(jqXHR)); } }; diff --git a/src/services/folderService.js b/src/services/folderService.js index 9b3a17e2..7678b7ac 100644 --- a/src/services/folderService.js +++ b/src/services/folderService.js @@ -1,4 +1,4 @@ -function FolderService(cryptoService, userService, apiService) { +function FolderService(cryptoService, userService, apiService) { this.cryptoService = cryptoService; this.userService = userService; this.apiService = apiService; @@ -29,7 +29,7 @@ function initFolderService() { chrome.storage.local.get(foldersKey, function (obj) { var folders = obj[foldersKey]; - if (id in folders) { + if (folders && id in folders) { callback(new Folder(folders[id])); return; } @@ -97,10 +97,14 @@ function initFolderService() { request = new FolderRequest(folder); if (!folder.id) { - self.apiService.postFolder(request, apiSuccess, handleError); + self.apiService.postFolder(request, apiSuccess, function (response) { + handleError(response, deferred) + }); } else { - self.apiService.putFolder(folder.id, request, apiSuccess, handleError); + self.apiService.putFolder(folder.id, request, apiSuccess, function (response) { + handleError(response, deferred) + }); } function apiSuccess(response) { @@ -219,4 +223,8 @@ function initFolderService() { }); }); }; + + function handleError(error, deferred) { + deferred.reject(error); + } }; diff --git a/src/services/siteService.js b/src/services/siteService.js index 90de4f50..01c39174 100644 --- a/src/services/siteService.js +++ b/src/services/siteService.js @@ -1,4 +1,4 @@ -function SiteService(cryptoService, userService, apiService) { +function SiteService(cryptoService, userService, apiService) { this.cryptoService = cryptoService; this.userService = userService; this.apiService = apiService; @@ -43,7 +43,7 @@ function initSiteService() { chrome.storage.local.get(sitesKey, function (obj) { var sites = obj[sitesKey]; - if (id in sites) { + if (sites && id in sites) { callback(new Site(sites[id])); return; } @@ -254,10 +254,6 @@ function initSiteService() { }; function handleError(error, deferred) { - if (error.status === 401 || error.status === 403) { - // TODO: logout - } - deferred.reject(error); } };