1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-16 16:23:44 +00:00

manage subvaults for login in vault

This commit is contained in:
Kyle Spearrin
2017-04-12 12:41:43 -04:00
parent 673485b5c4
commit 08aa53748e
6 changed files with 37 additions and 11 deletions

View File

@@ -29,7 +29,8 @@
'import': { url: _apiUri + '/ciphers/import', method: 'POST', params: {} }, 'import': { url: _apiUri + '/ciphers/import', method: 'POST', params: {} },
favorite: { url: _apiUri + '/ciphers/:id/favorite', method: 'POST', params: { id: '@id' } }, favorite: { url: _apiUri + '/ciphers/:id/favorite', method: 'POST', params: { id: '@id' } },
putPartial: { url: _apiUri + '/ciphers/:id/partial', method: 'POST', params: { id: '@id' } }, putPartial: { url: _apiUri + '/ciphers/:id/partial', method: 'POST', params: { id: '@id' } },
move: { url: _apiUri + '/ciphers/:id/move', method: 'POST', params: { id: '@id' } }, putShare: { url: _apiUri + '/ciphers/:id/share', method: 'POST', params: { id: '@id' } },
putSubvaults: { url: _apiUri + '/ciphers/:id/subvaults', method: 'POST', params: { id: '@id' } },
del: { url: _apiUri + '/ciphers/:id/delete', method: 'POST', params: { id: '@id' } } del: { url: _apiUri + '/ciphers/:id/delete', method: 'POST', params: { id: '@id' } }
}); });

View File

@@ -84,17 +84,25 @@
return Object.keys($scope.selectedSubvaults).length === $scope.subvaults.length; return Object.keys($scope.selectedSubvaults).length === $scope.subvaults.length;
}; };
$scope.submit = function (model) { $scope.submit = function () {
var request = { var request = {
subvaultIds: model.subvaultIds subvaultIds: []
}; };
$scope.submitPromise = apiService.ciphers.putSubvaults({ id: loginId }, request, function (response) { for (var id in $scope.selectedSubvaults) {
$analytics.eventTrack('Edited Login Subvaults'); if ($scope.selectedSubvaults.hasOwnProperty(id)) {
$uibModalInstance.close({ request.subvaultIds.push(id);
action: 'subvaultsEdit' }
}
$scope.submitPromise = apiService.ciphers.putSubvaults({ id: loginId }, request)
.$promise.then(function (response) {
$analytics.eventTrack('Edited Login Subvaults');
$uibModalInstance.close({
action: 'subvaultsEdit',
subvaultIds: request.subvaultIds
});
}); });
}).$promise;
}; };
$scope.close = function () { $scope.close = function () {

View File

@@ -103,7 +103,7 @@
} }
} }
$scope.submitPromise = apiService.ciphers.move({ id: loginId }, request, function (response) { $scope.submitPromise = apiService.ciphers.putShare({ id: loginId }, request, function (response) {
$analytics.eventTrack('Shared Login'); $analytics.eventTrack('Shared Login');
$uibModalInstance.close(); $uibModalInstance.close();
}).$promise; }).$promise;

View File

@@ -100,6 +100,23 @@
}); });
}; };
$scope.editSubvaults = function (login) {
var modal = $uibModal.open({
animation: true,
templateUrl: 'app/vault/views/vaultLoginSubvaults.html',
controller: 'vaultLoginSubvaultsController',
resolve: {
loginId: function () { return login.id; }
}
});
modal.result.then(function (response) {
if (response.subvaultIds) {
login.subvaultIds = response.subvaultIds;
}
});
};
function getFoldersPromise() { function getFoldersPromise() {
var deferred = $q.defer(); var deferred = $q.defer();

View File

@@ -2,7 +2,7 @@
<button type="button" class="close" ng-click="close()" aria-label="Close"><span aria-hidden="true">&times;</span></button> <button type="button" class="close" ng-click="close()" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title"><i class="fa fa-share-alt"></i> Subvaults <small>{{login.name}}</small></h4> <h4 class="modal-title"><i class="fa fa-share-alt"></i> Subvaults <small>{{login.name}}</small></h4>
</div> </div>
<form name="form" ng-submit="form.$valid && submit(model)" api-form="submitPromise"> <form name="form" ng-submit="form.$valid && submit()" api-form="submitPromise">
<div class="modal-body"> <div class="modal-body">
<p>This login is shared with the following subvaults.</p> <p>This login is shared with the following subvaults.</p>
<div class="callout callout-danger validation-errors" ng-show="form.$errors"> <div class="callout callout-danger validation-errors" ng-show="form.$errors">

View File

@@ -47,7 +47,7 @@
</a> </a>
</li> </li>
<li> <li>
<a href="javascript:void(0)" ng-click="subvaults(login)"> <a href="javascript:void(0)" ng-click="editSubvaults(login)">
<i class="fa fa-fw fa-share-alt"></i> Subvaults <i class="fa fa-fw fa-share-alt"></i> Subvaults
</a> </a>
</li> </li>