Moved controllers and models as per Shannon's suggestion

Added LoginStatus and updated Register
Updated to use CDF instead of <script> tags
This commit is contained in:
Sebastiaan Janssen
2013-08-28 13:36:04 +02:00
parent 8274883fa5
commit f26d759c84
14 changed files with 183 additions and 86 deletions

View File

@@ -0,0 +1,28 @@
using System.Linq;
using System.Web.Mvc;
using umbraco.cms.businesslogic.member;
using Umbraco.Web.Models;
using Umbraco.Web.Mvc;
namespace Umbraco.Web.Controllers
{
public class LoginController : SurfaceController
{
[HttpPost]
public ActionResult HandleLogin([Bind(Prefix="loginModel")]LoginModel model)
{
// TODO: Use new Member API
if (ModelState.IsValid)
{
var m = Member.GetMemberFromLoginNameAndPassword(model.Username, model.Password);
if (m != null)
{
Member.AddMemberToCache(m);
return Redirect("/");
}
}
return CurrentUmbracoPage();
}
}
}

View File

@@ -0,0 +1,30 @@
using System.Linq;
using System.Web.Mvc;
using umbraco.cms.businesslogic.member;
using Umbraco.Web.Models;
using Umbraco.Web.Mvc;
namespace Umbraco.Web.Controllers
{
public class LoginStatusController : SurfaceController
{
[HttpPost]
public ActionResult HandleLogout([Bind(Prefix = "loginStatusModel")]LoginStatusModel model)
{
// TODO: Use new Member API
if (ModelState.IsValid)
{
if (Member.IsLoggedOn())
{
var memberId = Member.CurrentMemberId();
Member.RemoveMemberFromCache(memberId);
Member.ClearMemberFromClient(memberId);
}
return Redirect("/");
}
return CurrentUmbracoPage();
}
}
}

View File

@@ -0,0 +1,45 @@
using System.Linq;
using System.Web.Mvc;
using System.Xml;
using umbraco.BusinessLogic;
using umbraco.cms.businesslogic.member;
using Umbraco.Web.Models;
using Umbraco.Web.Mvc;
namespace Umbraco.Web.Controllers
{
public class RegisterController : SurfaceController
{
[HttpPost]
public ActionResult HandleRegisterMember([Bind(Prefix="registerModel")]RegisterModel model)
{
//TODO: Use new Member API
if (ModelState.IsValid)
{
var user = new User(0);
var mt = MemberType.GetByAlias(model.MemberTypeAlias) ?? MemberType.MakeNew(user, model.MemberTypeAlias);
var member = Member.MakeNew(model.Email, mt, user);
member.Email = model.Email;
member.LoginName = model.Email;
member.Password = model.Password;
foreach (var property in model.MemberProperties)
{
member.getProperty(property.Alias).Value = property.Value;
}
member.Save();
member.XmlGenerate(new XmlDocument());
Member.AddMemberToCache(member);
Response.Redirect("/");
}
return CurrentUmbracoPage();
}
}
}