diff --git a/src/app/organization/organizationPeopleEditController.js b/src/app/organization/organizationPeopleEditController.js index 3b6c13ff0e..242dca0232 100644 --- a/src/app/organization/organizationPeopleEditController.js +++ b/src/app/organization/organizationPeopleEditController.js @@ -19,8 +19,8 @@ var collections = {}; if (user && user.Collections) { for (var i = 0; i < user.Collections.Data.length; i++) { - collections[user.Collections.Data[i].CollectionId] = { - collectionId: user.Collections.Data[i].CollectionId, + collections[user.Collections.Data[i].Id] = { + collectionId: user.Collections.Data[i].Id, readOnly: user.Collections.Data[i].ReadOnly }; } diff --git a/src/app/services/apiService.js b/src/app/services/apiService.js index eec79d095a..476cf43d1c 100644 --- a/src/app/services/apiService.js +++ b/src/app/services/apiService.js @@ -27,7 +27,7 @@ _service.ciphers = $resource(_apiUri + '/ciphers/:id', {}, { get: { method: 'GET', params: { id: '@id' } }, - getFullDetails: { url: _apiUri + '/ciphers/:id/full-details', method: 'GET', params: { id: '@id' } }, + getDetails: { url: _apiUri + '/ciphers/:id/details', method: 'GET', params: { id: '@id' } }, list: { method: 'GET', params: { includeFolders: false, includeShared: true } }, listDetails: { url: _apiUri + '/ciphers/details', method: 'GET', params: {} }, listOrganizationDetails: { url: _apiUri + '/ciphers/organization-details', method: 'GET', params: {} }, diff --git a/src/app/services/cipherService.js b/src/app/services/cipherService.js index c868518663..34b8fa793e 100644 --- a/src/app/services/cipherService.js +++ b/src/app/services/cipherService.js @@ -30,6 +30,7 @@ angular 'type': 1, folderId: encryptedLogin.FolderId, favorite: encryptedLogin.Favorite, + edit: encryptedLogin.Edit, name: cryptoService.decrypt(encryptedLogin.Name, key), uri: encryptedLogin.Uri && encryptedLogin.Uri !== '' ? cryptoService.decrypt(encryptedLogin.Uri, key) : null, username: encryptedLogin.Username && encryptedLogin.Username !== '' ? cryptoService.decrypt(encryptedLogin.Username, key) : null, @@ -54,6 +55,7 @@ angular collectionIds: encryptedCipher.CollectionIds || [], folderId: encryptedCipher.FolderId, favorite: encryptedCipher.Favorite, + edit: encryptedCipher.Edit, name: _service.decryptProperty(encryptedCipher.Data.Name, key, false), username: _service.decryptProperty(encryptedCipher.Data.Username, key, true) }; diff --git a/src/app/vault/vaultAddLoginController.js b/src/app/vault/vaultAddLoginController.js index 45c341d28d..183d48eb5d 100644 --- a/src/app/vault/vaultAddLoginController.js +++ b/src/app/vault/vaultAddLoginController.js @@ -40,6 +40,10 @@ }; $scope.folderSort = function (item) { + if (!item.id) { + return ''; + } + return item.name.toLowerCase(); }; diff --git a/src/app/vault/vaultEditLoginController.js b/src/app/vault/vaultEditLoginController.js index b3432942f5..bb74d8c635 100644 --- a/src/app/vault/vaultEditLoginController.js +++ b/src/app/vault/vaultEditLoginController.js @@ -63,6 +63,10 @@ }; $scope.folderSort = function (item) { + if (!item.id) { + return ''; + } + return item.name.toLowerCase(); }; diff --git a/src/app/vault/vaultLoginCollectionsController.js b/src/app/vault/vaultLoginCollectionsController.js index 65dbd91bac..f8788814af 100644 --- a/src/app/vault/vaultLoginCollectionsController.js +++ b/src/app/vault/vaultLoginCollectionsController.js @@ -12,7 +12,7 @@ $scope.collections = []; $uibModalInstance.opened.then(function () { - apiService.ciphers.getFullDetails({ id: loginId }).$promise.then(function (cipher) { + apiService.ciphers.getDetails({ id: loginId }).$promise.then(function (cipher) { $scope.loadingLogin = false; $scope.readOnly = !cipher.Edit; @@ -42,7 +42,10 @@ apiService.collections.listMe(function (response) { var collections = []; for (var i = 0; i < response.Data.length; i++) { - if (response.Data[i].OrganizationId !== cipher.OrganizationId) { + if (response.Data[i].OrganizationId !== cipher.OrganizationId || response.Data[i].ReadOnly) { + if (response.Data[i].Id in $scope.selectedCollections) { + delete $scope.selectedCollections[response.Data[i].Id]; + } continue; } diff --git a/src/app/vault/vaultShareLoginController.js b/src/app/vault/vaultShareLoginController.js index 6c39721e7b..ee273298aa 100644 --- a/src/app/vault/vaultShareLoginController.js +++ b/src/app/vault/vaultShareLoginController.js @@ -54,6 +54,10 @@ apiService.collections.listMe(function (response) { var collections = []; for (var i = 0; i < response.Data.length; i++) { + if (response.Data[i].ReadOnly) { + continue; + } + var decCollection = cipherService.decryptCollection(response.Data[i]); decCollection.organizationId = response.Data[i].OrganizationId; collections.push(decCollection); @@ -70,7 +74,8 @@ var collections = {}; if ($event.target.checked) { for (var i = 0; i < $scope.collections.length; i++) { - if ($scope.model.organizationId && $scope.collections[i].organizationId === $scope.model.organizationId) { + if ($scope.model.organizationId && $scope.collections[i].organizationId === $scope.model.organizationId + && !$scope.collections[i].readOnly) { collections[$scope.collections[i].id] = true; } } diff --git a/src/app/vault/views/vault.html b/src/app/vault/views/vault.html index 6f11b06582..5449b3beb5 100644 --- a/src/app/vault/views/vault.html +++ b/src/app/vault/views/vault.html @@ -66,12 +66,12 @@ Share -
  • +
  • Collections
  • -
  • +
  • Delete @@ -153,12 +153,12 @@ Share
  • -
  • +
  • Collections
  • -
  • +
  • Delete diff --git a/src/app/vault/views/vaultShared.html b/src/app/vault/views/vaultShared.html index 68536c610f..2e40c28078 100644 --- a/src/app/vault/views/vaultShared.html +++ b/src/app/vault/views/vaultShared.html @@ -62,12 +62,12 @@ Edit
  • -
  • +
  • Collections
  • -
  • +
  • Remove