diff --git a/src/app/accounts/accountsLoginController.js b/src/app/accounts/accountsLoginController.js index 434b1d7726..92e3f2c592 100644 --- a/src/app/accounts/accountsLoginController.js +++ b/src/app/accounts/accountsLoginController.js @@ -3,6 +3,7 @@ angular .controller('accountsLoginController', function ($scope, $rootScope, $cookies, apiService, cryptoService, authService, $state, appSettings, $analytics) { + var returnState = $state.params.returnState; var rememberedEmail = $cookies.get(appSettings.rememberedEmailCookieName); if (rememberedEmail) { $scope.model = { @@ -36,11 +37,11 @@ angular masterPassword = model.masterPassword; $analytics.eventTrack('Logged In To Two-step'); - $state.go('frontend.login.twoFactor'); + $state.go('frontend.login.twoFactor', { returnState: returnState }); } else { $analytics.eventTrack('Logged In'); - $state.go('backend.user.vault'); + loggedInGo(); } }); }; @@ -51,7 +52,16 @@ angular $scope.twoFactorPromise.then(function () { $analytics.eventTrack('Logged In From Two-step'); - $state.go('backend.user.vault'); + loggedInGo(); }); }; + + function loggedInGo() { + if (returnState) { + $state.go(returnState.name, returnState.params); + } + else { + $state.go('backend.user.vault'); + } + } }); diff --git a/src/app/accounts/accountsOrganizationAcceptController.js b/src/app/accounts/accountsOrganizationAcceptController.js new file mode 100644 index 0000000000..4f76292ba9 --- /dev/null +++ b/src/app/accounts/accountsOrganizationAcceptController.js @@ -0,0 +1,46 @@ +angular + .module('bit.accounts') + + .controller('accountsOrganizationAcceptController', function ($scope, $state, apiService, authService, toastr) { + $scope.state = { + name: $state.current.name, + params: $state.params + }; + + if (!$state.params.organizationId || !$state.params.organizationUserId || !$state.params.token) { + $state.go('frontend.login.info').then(function () { + toastr.error('Invalid parameters.'); + }); + return; + } + + $scope.$on('$viewContentLoaded', function () { + if (authService.isAuthenticated()) { + $scope.accepting = true; + apiService.organizationUsers.accept( + { + orgId: $state.params.organizationId, + id: $state.params.organizationUserId + }, + { + token: $state.params.token + }, function () { + $state.go('backend.user.vault', null, { location: 'replace' }).then(function () { + toastr.success('You can access this organization once an administrator confirms your membership.' + + ' We\'ll send an email when that happens.', 'Invite Accepted'); + }); + }, function () { + $state.go('backend.user.vault', null, { location: 'replace' }).then(function () { + toastr.error('Unable to accept invitation.', 'Error'); + }); + }); + } + else { + $scope.loading = false; + } + }); + + $scope.submit = function (model) { + + }; + }); diff --git a/src/app/accounts/accountsRegisterController.js b/src/app/accounts/accountsRegisterController.js index deef5d7037..a2e84a5e22 100644 --- a/src/app/accounts/accountsRegisterController.js +++ b/src/app/accounts/accountsRegisterController.js @@ -1,9 +1,11 @@ angular .module('bit.accounts') - .controller('accountsRegisterController', function ($scope, $location, apiService, cryptoService, validationService, $analytics) { + .controller('accountsRegisterController', function ($scope, $location, apiService, cryptoService, validationService, + $analytics, $state) { var params = $location.search(); + $scope.returnState = $state.params.returnState; $scope.success = false; $scope.model = { email: params.email diff --git a/src/app/accounts/views/accountsOrganizationAccept.html b/src/app/accounts/views/accountsOrganizationAccept.html new file mode 100644 index 0000000000..24fc67140d --- /dev/null +++ b/src/app/accounts/views/accountsOrganizationAccept.html @@ -0,0 +1,29 @@ +
+ +
+
+ Loading... +
+
+ Accepting invitation... +
+
+ +

+ You've been invited to join the ____ organization. To accept the invitation, you need to log in or + create a new bitwarden account. +

+
+
+
+

Log In

+
+ +
+
+
+
diff --git a/src/app/accounts/views/accountsRegister.html b/src/app/accounts/views/accountsRegister.html index 5e3689f429..5ecfd280ac 100644 --- a/src/app/accounts/views/accountsRegister.html +++ b/src/app/accounts/views/accountsRegister.html @@ -9,7 +9,7 @@

Account Created!

You may now log in to your new account.

- Ready to log in? + Ready to log in?
@@ -60,7 +60,7 @@