From 2539a9c23f1f5248e8b25174e91bcedcf030568e Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Wed, 9 Aug 2017 10:44:49 -0400 Subject: [PATCH] account recovery with delete --- .../accountsRecoverDeleteController.js | 13 +++++++ .../accountsVerifyRecoverDeleteController.js | 36 +++++++++++++++++ .../accounts/views/accountsRecoverDelete.html | 39 +++++++++++++++++++ .../views/accountsVerifyRecoverDelete.html | 21 ++++++++++ src/index.html | 2 + 5 files changed, 111 insertions(+) create mode 100644 src/app/accounts/accountsRecoverDeleteController.js create mode 100644 src/app/accounts/accountsVerifyRecoverDeleteController.js create mode 100644 src/app/accounts/views/accountsRecoverDelete.html create mode 100644 src/app/accounts/views/accountsVerifyRecoverDelete.html diff --git a/src/app/accounts/accountsRecoverDeleteController.js b/src/app/accounts/accountsRecoverDeleteController.js new file mode 100644 index 0000000000..a6cc7bb546 --- /dev/null +++ b/src/app/accounts/accountsRecoverDeleteController.js @@ -0,0 +1,13 @@ +angular + .module('bit.accounts') + + .controller('accountsRecoverDeleteController', function ($scope, $rootScope, apiService, $analytics) { + $scope.success = false; + + $scope.submit = function (model) { + $scope.submitPromise = apiService.accounts.postDeleteRecover({ email: model.email }, function () { + $analytics.eventTrack('Started Delete Recovery'); + $scope.success = true; + }).$promise; + }; + }); diff --git a/src/app/accounts/accountsVerifyRecoverDeleteController.js b/src/app/accounts/accountsVerifyRecoverDeleteController.js new file mode 100644 index 0000000000..e5a056e73e --- /dev/null +++ b/src/app/accounts/accountsVerifyRecoverDeleteController.js @@ -0,0 +1,36 @@ +angular + .module('bit.accounts') + + .controller('accountsVerifyRecoverDeleteController', function ($scope, $state, apiService, toastr, $analytics) { + if (!$state.params.userId || !$state.params.token || !$state.params.email) { + $state.go('frontend.login.info').then(function () { + toastr.error('Invalid parameters.'); + }); + return; + } + + $scope.email = $state.params.email; + + $scope.delete = function () { + if (!confirm('Are you sure you want to delete this account? This cannot be undone.')) { + return; + } + + $scope.deleting = true; + apiService.accounts.postDeleteRecoverToken({}, + { + token: $state.params.token, + userId: $state.params.userId + }, function () { + $analytics.eventTrack('Recovered Delete'); + $state.go('frontend.login.info', null, { location: 'replace' }).then(function () { + toastr.success('Your account has been deleted. You can register a new account again if you like.', + 'Success'); + }); + }, function () { + $state.go('frontend.login.info', null, { location: 'replace' }).then(function () { + toastr.error('Unable to delete account.', 'Error'); + }); + }); + }; + }); diff --git a/src/app/accounts/views/accountsRecoverDelete.html b/src/app/accounts/views/accountsRecoverDelete.html new file mode 100644 index 0000000000..7e3ad4dc24 --- /dev/null +++ b/src/app/accounts/views/accountsRecoverDelete.html @@ -0,0 +1,39 @@ +
+ + +
diff --git a/src/app/accounts/views/accountsVerifyRecoverDelete.html b/src/app/accounts/views/accountsVerifyRecoverDelete.html new file mode 100644 index 0000000000..a4589b0b15 --- /dev/null +++ b/src/app/accounts/views/accountsVerifyRecoverDelete.html @@ -0,0 +1,21 @@ +
+ + +
diff --git a/src/index.html b/src/index.html index af3acd4c67..b422c5ca68 100644 --- a/src/index.html +++ b/src/index.html @@ -172,6 +172,8 @@ + +