diff --git a/src/app/organization/organizationVaultController.js b/src/app/organization/organizationVaultController.js
index 982c7f76868..57fd5fdead3 100644
--- a/src/app/organization/organizationVaultController.js
+++ b/src/app/organization/organizationVaultController.js
@@ -94,4 +94,26 @@
}
});
};
+
+ $scope.removeLogin = function (login, subvault) {
+ if (!confirm('Are you sure you want to remove this login (' + login.name + ') from the ' +
+ 'subvault (' + subvault.name + ') ?')) {
+ return;
+ }
+
+ var request = {
+ subvaultIds: []
+ };
+
+ for (var i = 0; i < login.subvaultIds.length; i++) {
+ if (login.subvaultIds[i] !== subvault.id) {
+ request.subvaultIds.push(login.subvaultIds[i]);
+ }
+ }
+
+ apiService.ciphers.putSubvaults({ id: login.id }, request).$promise.then(function (response) {
+ $analytics.eventTrack('Removed From Subvault');
+ login.subvaultIds = request.subvaultIds;
+ });
+ };
});
diff --git a/src/app/organization/views/organizationVault.html b/src/app/organization/views/organizationVault.html
index 43e500c9e6c..3fd7cc021db 100644
--- a/src/app/organization/views/organizationVault.html
+++ b/src/app/organization/views/organizationVault.html
@@ -47,7 +47,7 @@
-
Remove
diff --git a/src/app/vault/vaultSubvaultsController.js b/src/app/vault/vaultSubvaultsController.js
index 5ca52254190..25b6fb4fedc 100644
--- a/src/app/vault/vaultSubvaultsController.js
+++ b/src/app/vault/vaultSubvaultsController.js
@@ -113,6 +113,31 @@
});
};
+ $scope.removeLogin = function (login, subvault) {
+ if (!confirm('Are you sure you want to remove this login (' + login.name + ') from the ' +
+ 'subvault (' + subvault.name + ') ?')) {
+ return;
+ }
+
+ var request = {
+ subvaultIds: []
+ };
+
+ for (var i = 0; i < login.subvaultIds.length; i++) {
+ if (login.subvaultIds[i] !== subvault.id) {
+ request.subvaultIds.push(login.subvaultIds[i]);
+ }
+ }
+
+ apiService.ciphers.putSubvaults({ id: login.id }, request).$promise.then(function (response) {
+ $analytics.eventTrack('Removed From Subvault');
+ login.subvaultIds = request.subvaultIds;
+ if (!login.subvaultIds.length) {
+ removeRootLogin(findRootLogin(login));
+ }
+ });
+ };
+
function findRootLogin(login) {
if ($rootScope.vaultLogins) {
var rootLogins = $filter('filter')($rootScope.vaultLogins, { id: login.id });
diff --git a/src/app/vault/views/vaultSubvaults.html b/src/app/vault/views/vaultSubvaults.html
index f6221c14ca9..b0b4cd230e0 100644
--- a/src/app/vault/views/vaultSubvaults.html
+++ b/src/app/vault/views/vaultSubvaults.html
@@ -70,7 +70,7 @@
-
+
Remove