mirror of
https://github.com/bitwarden/web
synced 2025-12-11 05:43:16 +00:00
Switch vault listing to user ciphers apis instead of calling login and folder separately
This commit is contained in:
@@ -52,7 +52,7 @@ angular
|
|||||||
_service.logOut = function () {
|
_service.logOut = function () {
|
||||||
tokenService.clearToken();
|
tokenService.clearToken();
|
||||||
tokenService.clearRefreshToken();
|
tokenService.clearRefreshToken();
|
||||||
cryptoService.clearKey();
|
cryptoService.clearKeys();
|
||||||
_userProfile = null;
|
_userProfile = null;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -5,57 +5,48 @@
|
|||||||
$scope.logins = [];
|
$scope.logins = [];
|
||||||
$scope.folders = [];
|
$scope.folders = [];
|
||||||
|
|
||||||
$scope.loadingLogins = true;
|
$scope.loading = true;
|
||||||
apiService.logins.list({}, function (logins) {
|
apiService.ciphers.list({}, function (ciphers) {
|
||||||
$scope.loadingLogins = false;
|
$scope.loading = false;
|
||||||
|
|
||||||
var decLogins = [];
|
var decLogins = [];
|
||||||
for (var i = 0; i < logins.Data.length; i++) {
|
|
||||||
var decLogin = {
|
|
||||||
id: logins.Data[i].Id,
|
|
||||||
folderId: logins.Data[i].FolderId,
|
|
||||||
favorite: logins.Data[i].Favorite
|
|
||||||
};
|
|
||||||
|
|
||||||
try { decLogin.name = cryptoService.decrypt(logins.Data[i].Name); }
|
|
||||||
catch (err) { decLogin.name = '[error: cannot decrypt]'; }
|
|
||||||
|
|
||||||
if (logins.Data[i].Username) {
|
|
||||||
try { decLogin.username = cryptoService.decrypt(logins.Data[i].Username); }
|
|
||||||
catch (err) { decLogin.username = '[error: cannot decrypt]'; }
|
|
||||||
}
|
|
||||||
|
|
||||||
decLogins.push(decLogin);
|
|
||||||
}
|
|
||||||
|
|
||||||
$scope.logins = decLogins;
|
|
||||||
}, function () {
|
|
||||||
$scope.loadingLogins = false;
|
|
||||||
});
|
|
||||||
|
|
||||||
$scope.loadingFolders = true;
|
|
||||||
apiService.folders.list({}, function (folders) {
|
|
||||||
$scope.loadingFolders = false;
|
|
||||||
|
|
||||||
var decFolders = [{
|
var decFolders = [{
|
||||||
id: null,
|
id: null,
|
||||||
name: '(none)'
|
name: '(none)'
|
||||||
}];
|
}];
|
||||||
|
|
||||||
for (var i = 0; i < folders.Data.length; i++) {
|
for (var i = 0; i < ciphers.Data.length; i++) {
|
||||||
var decFolder = {
|
if (ciphers.Data[i].Type === 0) {
|
||||||
id: folders.Data[i].Id
|
var decFolder = {
|
||||||
};
|
id: ciphers.Data[i].Id
|
||||||
|
};
|
||||||
|
|
||||||
try { decFolder.name = cryptoService.decrypt(folders.Data[i].Name); }
|
try { decFolder.name = cryptoService.decrypt(ciphers.Data[i].Data.Name); }
|
||||||
catch (err) { decFolder.name = '[error: cannot decrypt]'; }
|
catch (err) { decFolder.name = '[error: cannot decrypt]'; }
|
||||||
|
|
||||||
decFolders.push(decFolder);
|
decFolders.push(decFolder);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
var decLogin = {
|
||||||
|
id: ciphers.Data[i].Id,
|
||||||
|
folderId: ciphers.Data[i].FolderId,
|
||||||
|
favorite: ciphers.Data[i].Favorite
|
||||||
|
};
|
||||||
|
|
||||||
|
try { decLogin.name = cryptoService.decrypt(ciphers.Data[i].Data.Name); }
|
||||||
|
catch (err) { decLogin.name = '[error: cannot decrypt]'; }
|
||||||
|
|
||||||
|
if (ciphers.Data[i].Data.Username) {
|
||||||
|
try { decLogin.username = cryptoService.decrypt(ciphers.Data[i].Data.Username); }
|
||||||
|
catch (err) { decLogin.username = '[error: cannot decrypt]'; }
|
||||||
|
}
|
||||||
|
|
||||||
|
decLogins.push(decLogin);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$scope.folders = decFolders;
|
$scope.folders = decFolders;
|
||||||
}, function () {
|
$scope.logins = decLogins;
|
||||||
$scope.loadingFolders = false;
|
|
||||||
});
|
});
|
||||||
|
|
||||||
$scope.folderSort = function (item) {
|
$scope.folderSort = function (item) {
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
</h1>
|
</h1>
|
||||||
</section>
|
</section>
|
||||||
<section class="content">
|
<section class="content">
|
||||||
<div ng-show="loadingFolders && !folders.length">
|
<div ng-show="loading && !folders.length">
|
||||||
<p>Loading...</p>
|
<p>Loading...</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="box" ng-repeat="folder in folders | orderBy: folderSort" ng-show="folders.length && (!main.searchVaultText || folderLogins.length)">
|
<div class="box" ng-repeat="folder in folders | orderBy: folderSort" ng-show="folders.length && (!main.searchVaultText || folderLogins.length)">
|
||||||
@@ -27,10 +27,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="box-body" ng-class="{'no-padding': folderLogins.length}">
|
<div class="box-body" ng-class="{'no-padding': folderLogins.length}">
|
||||||
<div ng-show="loadingLogins && !folderLogins.length">
|
<div ng-show="!folderLogins.length">
|
||||||
<p>Loading logins...</p>
|
|
||||||
</div>
|
|
||||||
<div ng-show="!loadingLogins && !folderLogins.length">
|
|
||||||
<p>No logins in this folder.</p>
|
<p>No logins in this folder.</p>
|
||||||
<button type="button" ng-click="addLogin(folder)" class="btn btn-default btn-flat">Add a Login</button>
|
<button type="button" ng-click="addLogin(folder)" class="btn btn-default btn-flat">Add a Login</button>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user