From 0acab61f2e29238223f044c124ce4849a39571e5 Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Sat, 11 Mar 2017 20:46:33 -0500 Subject: [PATCH] add new org to profile --- src/app/services/authService.js | 20 +++++++++++++++++ src/app/services/cryptoService.js | 22 +++++++++++++++++++ .../settingsCreateOrganizationController.js | 7 +++--- 3 files changed, 46 insertions(+), 3 deletions(-) diff --git a/src/app/services/authService.js b/src/app/services/authService.js index 5af23b5c..b761c400 100644 --- a/src/app/services/authService.js +++ b/src/app/services/authService.js @@ -80,6 +80,26 @@ angular apiService.accounts.getProfile({}, loadProfile); }; + _service.addProfileOrganization = function (org) { + var profile = _service.getUserProfile(); + if (profile) { + if (!profile.Organizations) { + profile.Organizations = []; + } + + var org = { + id: org.Id, + name: org.Name, + key: org.Key, + status: org.Status + }; + profile.organizations.push(org); + + _userProfile = profile; + cryptoService.addOrgKey(org); + } + }; + function loadProfile(profile) { _userProfile.extended = { name: profile.Name, diff --git a/src/app/services/cryptoService.js b/src/app/services/cryptoService.js index 13831e4e..f8b5431c 100644 --- a/src/app/services/cryptoService.js +++ b/src/app/services/cryptoService.js @@ -43,6 +43,28 @@ angular } } + $sessionStorage.orgKeys = orgKeysb64; + }; + + _service.addOrgKey = function (orgKeyCt, privateKey) { + _orgKeys = _service.getOrgKeys(); + if (!_orgKeys) { + _orgKeys = {}; + } + + var orgKeysb64 = $sessionStorage.orgKeys; + if (!orgKeysb64) { + orgKeysb64 = {}; + } + + try { + var orgKey = _service.rsaDecrypt(orgKeyCt.key, privateKey); + _orgKeys[orgKeyCt.id] = orgKey; + orgKeysb64[orgKeyCt.id] = forge.util.encode64(orgKey); + } + catch (e) { + console.log('Cannot set org key. Decryption failed.'); + } $sessionStorage.orgKeys = orgKeysb64; }; diff --git a/src/app/settings/settingsCreateOrganizationController.js b/src/app/settings/settingsCreateOrganizationController.js index 0aa83f98..7fb6b48d 100644 --- a/src/app/settings/settingsCreateOrganizationController.js +++ b/src/app/settings/settingsCreateOrganizationController.js @@ -2,7 +2,7 @@ .module('bit.settings') .controller('settingsCreateOrganizationController', function ($scope, $state, apiService, $uibModalInstance, cryptoService, - toastr, $analytics) { + toastr, $analytics, authService) { $analytics.eventTrack('settingsCreateOrganizationController', { category: 'Modal' }); $scope.model = { @@ -16,10 +16,11 @@ key: cryptoService.makeShareKey() }; - $scope.submitPromise = apiService.organizations.post(request, function () { + $scope.submitPromise = apiService.organizations.post(request, function (result) { $uibModalInstance.dismiss('cancel'); $analytics.eventTrack('Created Organization'); - $state.go('backend.org.dashboard').then(function () { + authService.addProfileOrganization(result); + $state.go('backend.org.dashboard', { orgId: result.Id }).then(function () { toastr.success('Your new organization is ready to go!', 'Organization Created'); }); }).$promise;