mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-09-22 20:13:50 +08:00
#17778: Applying permission to admin menu Create items
Work Item: 17778 --HG-- branch : 1.x
This commit is contained in:
@@ -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)));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user