diff --git a/src/app/services/apiService.js b/src/app/services/apiService.js index 82d25b04c1..257f3f4646 100644 --- a/src/app/services/apiService.js +++ b/src/app/services/apiService.js @@ -29,11 +29,12 @@ del: { url: _apiUri + '/ciphers/:id/delete', method: 'POST', params: { id: '@id' } } }); - _service.shares = $resource(_apiUri + '/shares/:id', {}, { + _service.organizations = $resource(_apiUri + '/organizations/:id', {}, { get: { method: 'GET', params: { id: '@id' } }, - listCipher: { url: _apiUri + '/shares/:cipherId', method: 'GET', params: { cipherId: '@cipherId' } }, + list: { method: 'GET', params: {} }, post: { method: 'POST', params: {} }, - del: { url: _apiUri + '/shares/:id/delete', method: 'POST', params: { id: '@id' } } + put: { method: 'POST', params: { id: '@id' } }, + del: { url: _apiUri + '/organizations/:id/delete', method: 'POST', params: { id: '@id' } } }); _service.accounts = $resource(_apiUri + '/accounts', {}, { diff --git a/src/app/services/cryptoService.js b/src/app/services/cryptoService.js index a9a7d153d4..a0105c7e3b 100644 --- a/src/app/services/cryptoService.js +++ b/src/app/services/cryptoService.js @@ -132,7 +132,7 @@ angular }; _service.makeShareKey = function () { - return forge.random.getBytesSync(32); + return _service.rsaEncrypt(forge.random.getBytesSync(32)); }; _service.hashPassword = function (password, key) { diff --git a/src/app/settings/settingsController.js b/src/app/settings/settingsController.js index df30021dcc..922a2a708f 100644 --- a/src/app/settings/settingsController.js +++ b/src/app/settings/settingsController.js @@ -1,7 +1,7 @@ angular .module('bit.settings') - .controller('settingsController', function ($scope, $uibModal, apiService, toastr, authService) { + .controller('settingsController', function ($scope, $state, $uibModal, apiService, toastr, authService) { $scope.model = { profile: {}, twoFactorEnabled: false, @@ -70,6 +70,10 @@ }); }; + $scope.viewOrganization = function (id) { + $state.go('backend.org.dashboard'); + }; + $scope.twoFactor = function () { var twoFactorModal = $uibModal.open({ animation: true, diff --git a/src/app/settings/settingsCreateOrganizationController.js b/src/app/settings/settingsCreateOrganizationController.js index a355f99b6a..0aa83f98e0 100644 --- a/src/app/settings/settingsCreateOrganizationController.js +++ b/src/app/settings/settingsCreateOrganizationController.js @@ -1,17 +1,27 @@ angular .module('bit.settings') - .controller('settingsCreateOrganizationController', function ($scope, apiService, $uibModalInstance, cryptoService, - authService, toastr, $analytics) { + .controller('settingsCreateOrganizationController', function ($scope, $state, apiService, $uibModalInstance, cryptoService, + toastr, $analytics) { $analytics.eventTrack('settingsCreateOrganizationController', { category: 'Modal' }); + + $scope.model = { + plan: 'Free' + }; + $scope.submit = function (model) { var request = { - masterPasswordHash: cryptoService.hashPassword(model.masterPassword) + name: model.name, + planType: model.plan, + key: cryptoService.makeShareKey() }; $scope.submitPromise = apiService.organizations.post(request, function () { $uibModalInstance.dismiss('cancel'); $analytics.eventTrack('Created Organization'); + $state.go('backend.org.dashboard').then(function () { + toastr.success('Your new organization is ready to go!', 'Organization Created'); + }); }).$promise; }; diff --git a/src/app/settings/views/settings.html b/src/app/settings/views/settings.html index 9a18299294..1bb9547493 100644 --- a/src/app/settings/views/settings.html +++ b/src/app/settings/views/settings.html @@ -118,23 +118,26 @@ No organizations yet for your account.
- - - - - - - +
Name
- - + +
{{org.Name}} + + + + {{org.name}} + +
-