public async Task <IWriterResult> ResetAllTwoFactor(string userId, AdminResetTwoFactorModel model) { using (var context = DataContextFactory.CreateContext()) { var user = await context.Users.FirstOrDefaultNoLockAsync(x => x.UserName == model.UserName); if (user == null) { return(new WriterResult(false, $"User '{model.UserName}' not found")); } var approval = await context.ApprovalQueue.FirstOrDefaultNoLockAsync(x => x.DataUserId == user.Id && x.Type == Enums.ApprovalQueueType.ResetAllTwoFactor && x.Status == Enums.ApprovalQueueStatus.Pending); if (approval != null) { return(new WriterResult(false, "Already awaiting approval.")); } approval = new Entity.ApprovalQueue { DataUserId = user.Id, RequestUserId = userId, Type = Enums.ApprovalQueueType.ResetAllTwoFactor, Status = Enums.ApprovalQueueStatus.Pending, Created = DateTime.UtcNow, Data = model.Type }; context.ApprovalQueue.Add(approval); await context.SaveChangesAsync(); return(new WriterResult(true, $"Reset Two Factor for user {user.UserName} added to Approval Queue")); } }
public async Task <ActionResult> ResetAllTwoFactor(AdminResetTwoFactorModel model) { if (!ModelState.IsValid) { return(View("ResetTwoFactorModal", model)); } var result = await AdminUserWriter.ResetAllTwoFactor(User.Identity.GetUserId(), model); if (!ModelState.IsWriterResultValid(result)) { return(View("ResetTwoFactorModal", model)); } return(CloseModalSuccess(result.Message)); }