Add register member partial view macro template

This commit is contained in:
Sebastiaan Janssen
2013-08-27 19:29:15 +02:00
parent 53b6fb7b56
commit 86276206d5
6 changed files with 151 additions and 0 deletions

View File

@@ -293,6 +293,8 @@
<Compile Include="Configuration\WebRouting.cs" />
<Compile Include="Editors\MediaController.cs" />
<Compile Include="Models\ContentEditing\ContentSortOrder.cs" />
<Compile Include="UmbracoControllers\RegisterController.cs" />
<Compile Include="UmbracoModels\RegisterModel.cs" />
<Compile Include="UmbracoModels\LoginModel.cs" />
<Compile Include="Security\Providers\MembersMembershipProvider.cs" />
<Compile Include="Security\Providers\UsersMembershipProvider.cs" />

View File

@@ -11,6 +11,7 @@ namespace Umbraco.Web.UmbracoControllers
[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);

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.Mvc;
using Umbraco.Web.UmbracoModels;
namespace Umbraco.Web.UmbracoControllers
{
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();
}
}
}

View File

@@ -0,0 +1,28 @@
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
namespace Umbraco.Web.UmbracoModels
{
public class RegisterModel
{
[Required]
[RegularExpression(@"[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?",
ErrorMessage = "Please enter a valid e-mail address")]
public string Email { get; set; }
[Required]
public string Password { get; set; }
public string MemberTypeAlias { get; set; }
public List<UmbracoProperty> MemberProperties { get; set; }
}
public class UmbracoProperty
{
public string Alias { get; set; }
public string Value { get; set; }
public string Name { get; set; }
}
}