public async Task <ActionResult> Delete( [FromBody] UsernameOrEmailModel model, [FromHeader(Name = Headers.AdminKey)] string adminKey) { if (!CheckAdmin(adminKey)) { return(Unauthorized()); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var userResp = await UserManager.FindUserByUsernameOrEmail(model.UsernameOrEmail); if (!userResp.Found) { return(NotFound()); } var resp = await UserManager.DeleteAsync(userResp.Value); if (resp.Succeeded) { return(Ok()); } foreach (var error in resp.Errors) { ModelState.TryAddModelError(error.Code, error.Description); } return(BadRequest(ModelState)); }
public Task <ActionResult> UnlockUser( [FromBody] UsernameOrEmailModel model, [FromHeader(Name = Headers.AdminKey)] string adminKey) { if (!CheckAdmin(adminKey)) { return(Task.FromResult <ActionResult>(Unauthorized())); } return(LockUnlockUser(model, false)); }
public async Task <ActionResult <ForgotPasswordResponse> > ForgotPassword([FromBody] UsernameOrEmailModel model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } // https://code-maze.com/password-reset-aspnet-core-identity/ var candidateUser = await UserManager.FindUserByUsernameOrEmail(model.UsernameOrEmail); if (!candidateUser.Found) { return(NotFound()); } return(Ok(new ForgotPasswordResponse { Email = candidateUser.Value.Email, Token = await UserManager.GeneratePasswordResetTokenAsync(candidateUser.Value) })); }
async Task <ActionResult> LockUnlockUser(UsernameOrEmailModel model, bool isLocked) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var userResp = await UserManager.FindUserByUsernameOrEmail(model.UsernameOrEmail); if (!userResp.Found) { return(NotFound()); } var resp = await UserManager.SetLockoutEnabledAsync(userResp.Value, isLocked); if (resp.Succeeded) { if (isLocked) { await UserManager.SetLockoutEndDateAsync(userResp.Value, DateTimeOffset.Now.AddYears(100)); } else { await UserManager.SetLockoutEndDateAsync(userResp.Value, null); } } if (resp.Succeeded) { return(Ok()); } foreach (var error in resp.Errors) { ModelState.TryAddModelError(error.Code, error.Description); } return(BadRequest(ModelState)); }