diff --git a/src/app/services/apiService.js b/src/app/services/apiService.js index f8c12adb9c..685b946a67 100644 --- a/src/app/services/apiService.js +++ b/src/app/services/apiService.js @@ -24,6 +24,7 @@ _service.ciphers = $resource(_apiUri + '/ciphers/:id', {}, { get: { method: 'GET', params: { id: '@id' } }, list: { method: 'GET', params: {} }, + listSubvaults: { url: _apiUri + '/ciphers/subvaults', method: 'GET', params: {} }, 'import': { url: _apiUri + '/ciphers/import', method: 'POST', params: {} }, favorite: { url: _apiUri + '/ciphers/:id/favorite', method: 'POST', params: { id: '@id' } }, move: { url: _apiUri + '/ciphers/:id/move', method: 'POST', params: { id: '@id' } }, diff --git a/src/app/services/cipherService.js b/src/app/services/cipherService.js index f27abff3cc..f61f1186d4 100644 --- a/src/app/services/cipherService.js +++ b/src/app/services/cipherService.js @@ -26,6 +26,7 @@ angular var login = { id: encryptedLogin.Id, organizationId: encryptedLogin.OrganizationId, + subvaultIds: encryptedLogin.SubvaultIds || [], 'type': 1, folderId: encryptedLogin.FolderId, favorite: encryptedLogin.Favorite, @@ -56,6 +57,7 @@ angular var login = { id: encryptedCipher.Id, organizationId: encryptedCipher.OrganizationId, + subvaultIds: encryptedCipher.SubvaultIds || [], folderId: encryptedCipher.FolderId, favorite: encryptedCipher.Favorite, name: _service.decryptProperty(encryptedCipher.Data.Name, key, false), diff --git a/src/app/sharing/sharingController.js b/src/app/sharing/sharingController.js index 9bdc0d536a..f9ebaf6d8f 100644 --- a/src/app/sharing/sharingController.js +++ b/src/app/sharing/sharingController.js @@ -1,6 +1,44 @@ angular .module('bit.sharing') - .controller('sharingController', function ($scope, apiService, cryptoService, cipherService, $analytics) { + .controller('sharingController', function ($scope, apiService, cipherService, $analytics, $q) { + $scope.logins = []; + $scope.subvaults = []; + $scope.loading = true; + $scope.$on('$viewContentLoaded', function () { + var subvaultPromise = apiService.subvaults.listMe({}, function (subvaults) { + var decSubvaults = []; + + for (var i = 0; i < subvaults.Data.length; i++) { + var decSubvault = cipherService.decryptSubvault(subvaults.Data[i], null, true); + decSubvaults.push(decSubvault); + } + + $scope.subvaults = decSubvaults; + }).$promise; + + var cipherPromise = apiService.ciphers.listSubvaults({}, function (ciphers) { + var decLogins = []; + + for (var i = 0; i < ciphers.Data.length; i++) { + if (ciphers.Data[i].Type === 1) { + var decLogin = cipherService.decryptLoginPreview(ciphers.Data[i]); + decLogins.push(decLogin); + } + } + + $scope.logins = decLogins; + }).$promise; + + $q.all([subvaultPromise, cipherPromise]).then(function () { + $scope.loading = false; + }); + }); + + $scope.filterBySubvault = function (subvault) { + return function (cipher) { + return cipher.subvaultIds.indexOf(subvault.id) > -1; + }; + }; }); diff --git a/src/app/sharing/views/sharing.html b/src/app/sharing/views/sharing.html index 4b88f858e4..53517647f0 100644 --- a/src/app/sharing/views/sharing.html +++ b/src/app/sharing/views/sharing.html @@ -1,7 +1,7 @@ 

Sharing Center - {{subvaults.length > 0 ? subvaults.length - 1 : 0}} subvaults, {{logins.length}} logins + {{subvaults.length}} subvaults, {{logins.length}} logins

@@ -27,7 +27,7 @@

No logins in this folder.

- +
@@ -39,7 +39,7 @@ -