#17778: Applying permission to admin menu Create items

Work Item: 17778

--HG--
branch : 1.x
This commit is contained in:
randompete
2011-12-06 10:50:17 -08:00
parent 8d578fb59e
commit 3f925b5386

View File

@@ -20,13 +20,11 @@ namespace Orchard.Core.Contents {
public void GetNavigation(NavigationBuilder builder) { public void GetNavigation(NavigationBuilder builder) {
var contentTypeDefinitions = _contentDefinitionManager.ListTypeDefinitions().OrderBy(d => d.Name); var contentTypeDefinitions = _contentDefinitionManager.ListTypeDefinitions().OrderBy(d => d.Name);
builder.AddImageSet("content") builder.AddImageSet("content")
.Add(T("Content"), "1.4", menu => menu .Add(T("Content"), "1.4", menu => menu
.Add(T("Content Items"), "1", item => item.Action("List", "Admin", new { area = "Contents", id = "" }).LocalNav())); .Add(T("Content Items"), "1", item => item.Action("List", "Admin", new { area = "Contents", id = "" }).LocalNav()));
var contentTypes = contentTypeDefinitions.Where(ctd => ctd.Settings.GetModel<ContentTypeSettings>().Creatable).OrderBy(ctd => ctd.DisplayName); var contentTypes = contentTypeDefinitions.Where(ctd => ctd.Settings.GetModel<ContentTypeSettings>().Creatable).OrderBy(ctd => ctd.DisplayName);
if (contentTypes.Count() > 0) { if (contentTypes.Any()) {
builder.Add(T("New"), "-1", menu => { builder.Add(T("New"), "-1", menu => {
menu.LinkToFirstChild(false); menu.LinkToFirstChild(false);
foreach (var contentTypeDefinition in contentTypes) { foreach (var contentTypeDefinition in contentTypes) {
@@ -35,7 +33,9 @@ namespace Orchard.Core.Contents {
var createRouteValues = cim.CreateRouteValues; var createRouteValues = cim.CreateRouteValues;
// review: the display name should be a LocalizedString // review: the display name should be a LocalizedString
if (createRouteValues.Any()) if (createRouteValues.Any())
menu.Add(T(contentTypeDefinition.DisplayName), "5", item => item.Action(cim.CreateRouteValues["Action"] as string, cim.CreateRouteValues["Controller"] as string, cim.CreateRouteValues)); menu.Add(T(contentTypeDefinition.DisplayName), "5", item => item.Action(cim.CreateRouteValues["Action"] as string, cim.CreateRouteValues["Controller"] as string, cim.CreateRouteValues)
// Apply "PublishOwn" permission for the content type
.Permission(DynamicPermissions.CreateDynamicPermission(DynamicPermissions.PermissionTemplates[Permissions.PublishOwnContent.Name], contentTypeDefinition)));
} }
}); });
} }