Cleanup and fixes
This commit is contained in:
@@ -1,10 +1,9 @@
|
||||
using System;
|
||||
using System.Web.Mvc;
|
||||
using System.Web.Security;
|
||||
using MileageTraker.Web.Attributes;
|
||||
using MileageTraker.Web.DAL;
|
||||
using MileageTraker.Web.Email;
|
||||
using MileageTraker.Web.Models;
|
||||
using MileageTraker.Web.Utility;
|
||||
using MileageTraker.Web.ViewModels.Account;
|
||||
|
||||
namespace MileageTraker.Web.Controllers
|
||||
@@ -74,23 +73,31 @@ namespace MileageTraker.Web.Controllers
|
||||
: message == ManageMessageId.SetPasswordSuccess ? "Your password has been set."
|
||||
: null;
|
||||
ViewBag.ReturnUrl = Url.Action("Manage");
|
||||
return View();
|
||||
|
||||
var user = DataService.FindUserByUsername(User.Identity.Name);
|
||||
var viewModel = new ChangePasswordViewModel(user);
|
||||
|
||||
return View(viewModel);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ValidateAntiForgeryToken]
|
||||
[ActionLog]
|
||||
public ActionResult Manage(ChangePasswordViewModel model)
|
||||
{
|
||||
ViewBag.ReturnUrl = Url.Action("Manage");
|
||||
|
||||
var membershipUser = Membership.GetUser(User.Identity.Name, true);
|
||||
//var user = DataService.FindUserByUsername(User.Identity.Name);
|
||||
//model.SetProperties(user);
|
||||
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
// ChangePassword will throw an exception rather than return false in certain failure scenarios.
|
||||
bool changePasswordSucceeded;
|
||||
try
|
||||
{
|
||||
var currentUser = Membership.GetUser(User.Identity.Name, true);
|
||||
changePasswordSucceeded = currentUser.ChangePassword(model.OldPassword, model.NewPassword);
|
||||
changePasswordSucceeded = membershipUser.ChangePassword(model.OldPassword, model.NewPassword);
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
@@ -130,7 +137,7 @@ namespace MileageTraker.Web.Controllers
|
||||
/// View the Reset Password form
|
||||
/// </summary>
|
||||
[AllowAnonymous]
|
||||
[AcceptVerbs(HttpVerbs.Get)]
|
||||
[HttpGet]
|
||||
public ViewResult ResetPassword(string username)
|
||||
{
|
||||
return View(new ResetPasswordViewModel{Username = username});
|
||||
@@ -140,12 +147,13 @@ namespace MileageTraker.Web.Controllers
|
||||
/// Begins the Reset Password process
|
||||
/// </summary>
|
||||
[AllowAnonymous]
|
||||
[AcceptVerbs(HttpVerbs.Post)]
|
||||
[HttpPost]
|
||||
[ValidateAntiForgeryToken]
|
||||
[ActionLog]
|
||||
public ActionResult ResetPassword(ResetPasswordViewModel viewModel)
|
||||
{
|
||||
var user = DataService.FindUserByUsername(viewModel.Username);
|
||||
if (user != null && Request.Url != null)
|
||||
if (user != null && user.IsApproved && Request.Url != null)
|
||||
{
|
||||
var email = new EmailNotificationService();
|
||||
var resetPasswordUrl = ResetPassword(user);
|
||||
@@ -161,11 +169,12 @@ namespace MileageTraker.Web.Controllers
|
||||
/// Action users are sent to when they reset their password.
|
||||
/// </summary>
|
||||
[AllowAnonymous]
|
||||
[AcceptVerbs(HttpVerbs.Get)]
|
||||
[HttpGet]
|
||||
public ActionResult NewPassword(Guid userId, string passwordResetToken)
|
||||
{
|
||||
var user = DataService.GetUser(userId);
|
||||
if (user != null && user.PasswordResetToken == passwordResetToken)
|
||||
if (user != null && user.IsApproved &&
|
||||
user.PasswordResetToken == passwordResetToken)
|
||||
{
|
||||
var newPasswordViewModel
|
||||
= new NewPasswordViewModel
|
||||
@@ -185,18 +194,25 @@ namespace MileageTraker.Web.Controllers
|
||||
/// </summary>
|
||||
/// <param name="viewModel">The view model.</param>
|
||||
[AllowAnonymous]
|
||||
[AcceptVerbs(HttpVerbs.Post)]
|
||||
[HttpPost]
|
||||
[ValidateAntiForgeryToken]
|
||||
[ActionLog]
|
||||
public ActionResult NewPassword(NewPasswordViewModel viewModel)
|
||||
{
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
var user = DataService.GetUser(viewModel.UserId);
|
||||
if (user != null && user.PasswordResetToken == viewModel.PasswordResetToken)
|
||||
if (user != null && user.IsApproved &&
|
||||
user.PasswordResetToken == viewModel.PasswordResetToken)
|
||||
{
|
||||
DataService.UpdateUserPassword(viewModel.UserId, viewModel.NewPassword);
|
||||
TempData["StatusMessage"] = "Password set for " + viewModel.Username;
|
||||
return RedirectToAction("Login", new {username = viewModel.Username});
|
||||
var success = Membership.ValidateUser(user.Username, viewModel.NewPassword);
|
||||
if (success)
|
||||
{
|
||||
FormsAuthentication.SetAuthCookie(viewModel.Username, false);
|
||||
TempData["StatusMessage"] = "Password set for " + viewModel.Username + ", logged in";
|
||||
return RedirectToAction("Index", "CreateLog");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user