Backports commit: Prefixed built in controllers to better avoid conflicts with people's custom code
Conflicts: src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/EditProfile.cshtml src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/Login.cshtml src/Umbraco.Web/Controllers/UmbLoginController.cs src/Umbraco.Web/Controllers/UmbLoginStatusController.cs src/Umbraco.Web/Controllers/UmbProfileController.cs src/Umbraco.Web/Controllers/UmbRegisterController.cs src/Umbraco.Web/Umbraco.Web.csproj
This commit is contained in:
90
src/Umbraco.Web/Controllers/UmbRegisterController.cs
Normal file
90
src/Umbraco.Web/Controllers/UmbRegisterController.cs
Normal file
@@ -0,0 +1,90 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Web.Mvc;
|
||||
using System.Web.Security;
|
||||
using umbraco.BusinessLogic;
|
||||
using umbraco.cms.businesslogic.member;
|
||||
using Umbraco.Web.Models;
|
||||
using Umbraco.Web.Mvc;
|
||||
|
||||
namespace Umbraco.Web.Controllers
|
||||
{
|
||||
public class UmbRegisterController : SurfaceController
|
||||
{
|
||||
[HttpPost]
|
||||
public ActionResult HandleRegisterMember([Bind(Prefix = "registerModel")]RegisterModel model)
|
||||
{
|
||||
if (ModelState.IsValid == false)
|
||||
{
|
||||
return CurrentUmbracoPage();
|
||||
}
|
||||
|
||||
model.Username = (model.UsernameIsEmail || model.Username == null) ? model.Email : model.Username;
|
||||
|
||||
MembershipCreateStatus status;
|
||||
var member = Membership.CreateUser(model.Username, model.Password, model.Email,
|
||||
//TODO: Support q/a http://issues.umbraco.org/issue/U4-3213
|
||||
"", "",
|
||||
true, out status);
|
||||
|
||||
switch (status)
|
||||
{
|
||||
case MembershipCreateStatus.Success:
|
||||
|
||||
//Set member online
|
||||
Membership.GetUser(model.Username, true);
|
||||
//Log them in
|
||||
FormsAuthentication.SetAuthCookie(member.UserName, true);
|
||||
|
||||
if (model.RedirectOnSucces)
|
||||
{
|
||||
return Redirect(model.RedirectUrl);
|
||||
}
|
||||
|
||||
TempData.Add("FormSuccess", true);
|
||||
return RedirectToCurrentUmbracoPage();
|
||||
|
||||
break;
|
||||
case MembershipCreateStatus.InvalidUserName:
|
||||
ModelState.AddModelError((model.UsernameIsEmail || model.Username == null)
|
||||
? "registerModel.Email"
|
||||
: "registerModel.Username",
|
||||
"Username is not valid");
|
||||
break;
|
||||
case MembershipCreateStatus.InvalidPassword:
|
||||
ModelState.AddModelError("registerModel.Password", "The password is not strong enough");
|
||||
break;
|
||||
case MembershipCreateStatus.InvalidQuestion:
|
||||
case MembershipCreateStatus.InvalidAnswer:
|
||||
//TODO: Support q/a http://issues.umbraco.org/issue/U4-3213
|
||||
throw new NotImplementedException(status.ToString());
|
||||
case MembershipCreateStatus.InvalidEmail:
|
||||
ModelState.AddModelError("registerModel.Email", "Email is invalid");
|
||||
break;
|
||||
case MembershipCreateStatus.DuplicateUserName:
|
||||
ModelState.AddModelError((model.UsernameIsEmail || model.Username == null)
|
||||
? "registerModel.Email"
|
||||
: "registerModel.Username",
|
||||
"A member with this username already exists.");
|
||||
break;
|
||||
case MembershipCreateStatus.DuplicateEmail:
|
||||
ModelState.AddModelError("registerModel.Email", "A member with this e-mail address already exists");
|
||||
break;
|
||||
case MembershipCreateStatus.UserRejected:
|
||||
case MembershipCreateStatus.InvalidProviderUserKey:
|
||||
case MembershipCreateStatus.DuplicateProviderUserKey:
|
||||
case MembershipCreateStatus.ProviderError:
|
||||
ModelState.AddModelError((model.UsernameIsEmail || model.Username == null)
|
||||
? "registerModel.Email"
|
||||
: "registerModel.Username",
|
||||
"An error occurred creating the member: " + status);
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException();
|
||||
}
|
||||
|
||||
return CurrentUmbracoPage();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user