closes #146 Add New User interface should have roles (currently redirects to Edit User after user is created)

--HG--
extra : convert_revision : svn%3A5ff7c347-ad56-4c35-b696-ccb81de16e03/trunk%4042414
This commit is contained in:
loudej
2009-11-27 05:12:52 +00:00
parent 3c0f413e34
commit 72dd76a36d
5 changed files with 25 additions and 7 deletions

View File

@@ -11,15 +11,12 @@ using Orchard.Models.Records;
namespace Orchard.DevTools.Controllers {
public class ContentController : Controller {
private readonly IRepository<ContentItemRecord> _contentItemRepository;
private readonly IRepository<ContentTypeRecord> _contentTypeRepository;
private readonly IContentManager _contentManager;
public ContentController(
IRepository<ContentItemRecord> contentItemRepository,
IRepository<ContentTypeRecord> contentTypeRepository,
IContentManager contentManager) {
_contentItemRepository = contentItemRepository;
_contentTypeRepository = contentTypeRepository;
_contentManager = contentManager;
}

View File

@@ -7,6 +7,7 @@
<li>
<%= Html.Hidden("Roles[" + index + "].RoleId", entry.RoleId)%>
<%= Html.Hidden("Roles[" + index + "].Name", entry.Name)%>
<label for="<%="Roles[" + index + "]_Granted"%>"><%= Html.CheckBox("Roles[" + index + "].Granted", entry.Granted)%> <%=Html.Encode(entry.Name)%></label>
</li>

View File

@@ -47,16 +47,21 @@ namespace Orchard.Users.Controllers {
}
public ActionResult Create() {
var model = new UserCreateViewModel();
var user = _contentManager.New("user");
var model = new UserCreateViewModel {
Editors = _contentManager.GetEditors(user)
};
return View(model);
}
[HttpPost]
public ActionResult Create(UserCreateViewModel model) {
if (model.Password != model.ConfirmPassword) {
ModelState.AddModelError("ConfirmPassword", T("Password confirmation must match").ToString());
}
if (ModelState.IsValid == false) {
model.Editors = _contentManager.UpdateEditors(_contentManager.New("user"), this);
return View(model);
}
var user = _membershipService.CreateUser(new CreateUserParams(
@@ -64,6 +69,12 @@ namespace Orchard.Users.Controllers {
model.Password,
model.Email,
null, null, true));
model.Editors = _contentManager.UpdateEditors(user, this);
if (ModelState.IsValid == false) {
//TODO: rollback transaction
return View(model);
}
return RedirectToAction("edit", new { user.Id });
}

View File

@@ -1,5 +1,7 @@
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using Orchard.Mvc.ViewModels;
using Orchard.UI.Models;
namespace Orchard.Users.ViewModels {
public class UserCreateViewModel : AdminViewModel {
@@ -14,5 +16,8 @@ namespace Orchard.Users.ViewModels {
[Required, DataType(DataType.Password)]
public string ConfirmPassword { get; set; }
public IEnumerable<ModelTemplate> Editors { get; set; }
}
}

View File

@@ -7,3 +7,7 @@
<%=Html.EditorFor(m=>m.Password, "inputPasswordLarge") %>
<%=Html.EditorFor(m=>m.ConfirmPassword, "inputPasswordLarge") %>
</ol>
<% foreach(var e in Model.Editors) {%>
<%=Html.EditorFor(m => e.Model, e.TemplateName, e.Prefix)%>
<%} %>