From 878156e21ebd026db3546583865e62b9c1f7c617 Mon Sep 17 00:00:00 2001 From: Shannon Date: Fri, 7 Mar 2014 19:13:25 +1100 Subject: [PATCH] putting back what the UmbLoginController should be ... where in the hell has this been overwritten from??! --- .../Controllers/UmbLoginController.cs | 30 +++++++++++++------ 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/src/Umbraco.Web/Controllers/UmbLoginController.cs b/src/Umbraco.Web/Controllers/UmbLoginController.cs index 213ff0e09b..63a69032ee 100644 --- a/src/Umbraco.Web/Controllers/UmbLoginController.cs +++ b/src/Umbraco.Web/Controllers/UmbLoginController.cs @@ -1,8 +1,10 @@ using System.Linq; using System.Web.Mvc; +using System.Web.Security; using umbraco.cms.businesslogic.member; using Umbraco.Web.Models; using Umbraco.Web.Mvc; +using Umbraco.Core; namespace Umbraco.Web.Controllers { @@ -11,18 +13,28 @@ namespace Umbraco.Web.Controllers [HttpPost] public ActionResult HandleLogin([Bind(Prefix="loginModel")]LoginModel model) { - // TODO: Use new Member API - if (ModelState.IsValid) + if (ModelState.IsValid == false) { - var m = Member.GetMemberFromLoginNameAndPassword(model.Username, model.Password); - if (m != null) - { - Member.AddMemberToCache(m); - return Redirect("/"); - } + return CurrentUmbracoPage(); } - return CurrentUmbracoPage(); + if (Members.Login(model.Username, model.Password) == false) + { + //don't add a field level error, just model level + ModelState.AddModelError("loginModel", "Invalid username or password"); + return CurrentUmbracoPage(); + } + + //if there is a specified path to redirect to then use it + if (model.RedirectUrl.IsNullOrWhiteSpace() == false) + { + return Redirect(model.RedirectUrl); + } + + //redirect to current page by default + TempData.Add("LoginSuccess", true); + //return RedirectToCurrentUmbracoPage(); + return RedirectToCurrentUmbracoUrl(); } } }