From ead0edec370483e5e80d42cc49c67f13e28c13b1 Mon Sep 17 00:00:00 2001 From: Syndamia Date: Sat, 8 May 2021 18:46:46 +0300 Subject: Implemented account deletion --- ExamTemplate/Services/UserService.cs | 8 ++++++++ ExamTemplate/Web/Controllers/AccountController.cs | 16 +++++++++++----- ExamTemplate/Web/Views/Account/Profile.cshtml | 4 ++++ 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/ExamTemplate/Services/UserService.cs b/ExamTemplate/Services/UserService.cs index 2f137a1..8e5c682 100644 --- a/ExamTemplate/Services/UserService.cs +++ b/ExamTemplate/Services/UserService.cs @@ -77,6 +77,14 @@ namespace ExamTemplate.Services return result.Succeeded; } + public async Task DeleteUserAsync(ClaimsPrincipal claimsPrincipal) + { + User user = await this._userManager.GetUserAsync(claimsPrincipal); + + IdentityResult result = await this._userManager.DeleteAsync(user); + return result.Succeeded; + } + public bool IsSignedIn(ClaimsPrincipal claimsPrincipal) { return this._signInManager.IsSignedIn(claimsPrincipal); diff --git a/ExamTemplate/Web/Controllers/AccountController.cs b/ExamTemplate/Web/Controllers/AccountController.cs index d56d3df..373dd4b 100644 --- a/ExamTemplate/Web/Controllers/AccountController.cs +++ b/ExamTemplate/Web/Controllers/AccountController.cs @@ -131,10 +131,16 @@ namespace ExamTemplate.Web.Controllers return RedirectToAction("Profile", new { username = loggedInUser.Username }); } - // [HttpPost] - // public async Task DeleteProfile(string username) - // { - // throw new System.NotImplementedException(); - // } + [HttpPost] + public async Task Delete() + { + await this._userService.LogoutAsync(); + bool result = await this._userService.DeleteUserAsync(HttpContext.User); + + if (result) + return RedirectToAction("Login"); + else + return RedirectToAction("Index", "Home"); + } } } diff --git a/ExamTemplate/Web/Views/Account/Profile.cshtml b/ExamTemplate/Web/Views/Account/Profile.cshtml index c6f3e5c..6decb79 100644 --- a/ExamTemplate/Web/Views/Account/Profile.cshtml +++ b/ExamTemplate/Web/Views/Account/Profile.cshtml @@ -22,6 +22,10 @@
+ +
+ +
} }

-- cgit v1.2.3