Adding password storage and verification. Clear and hashed supported. Hashed is default, uses SHA1 with unique salt per user.

--HG--
extra : convert_revision : svn%3A5ff7c347-ad56-4c35-b696-ccb81de16e03/trunk%4040935
This commit is contained in:
loudej
2009-11-17 05:52:23 +00:00
parent 0cc64ebe1c
commit e225650203
10 changed files with 195 additions and 10 deletions

View File

@@ -13,14 +13,17 @@ using Orchard.Users.ViewModels;
namespace Orchard.Users.Controllers {
public class AdminController : Controller, IModelUpdater {
private readonly IMembershipService _membershipService;
private readonly IModelManager _modelManager;
private readonly IRepository<UserRecord> _userRepository;
private readonly INotifier _notifier;
public AdminController(
IMembershipService membershipService,
IModelManager modelManager,
IRepository<UserRecord> userRepository,
INotifier notifier) {
_membershipService = membershipService;
_modelManager = modelManager;
_userRepository = userRepository;
_notifier = notifier;
@@ -49,12 +52,17 @@ namespace Orchard.Users.Controllers {
[HttpPost]
public ActionResult Create(UserCreateViewModel model) {
if (model.Password != model.ConfirmPassword) {
ModelState.AddModelError("ConfirmPassword", T("Password confirmation must match").ToString());
}
if (ModelState.IsValid == false) {
return View(model);
}
var user = _modelManager.New("user");
user.As<UserModel>().Record = new UserRecord { UserName = model.UserName, Email = model.Email };
_modelManager.Create(user);
var user = _membershipService.CreateUser(new CreateUserParams(
model.UserName,
model.Password,
model.Email,
null, null, true));
return RedirectToAction("edit", new { user.Id });
}