mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-09-24 05:23:33 +08:00
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:
@@ -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;
|
||||
}
|
||||
|
@@ -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>
|
||||
|
@@ -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 });
|
||||
}
|
||||
|
||||
|
@@ -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; }
|
||||
|
||||
}
|
||||
}
|
@@ -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)%>
|
||||
<%} %>
|
||||
|
Reference in New Issue
Block a user