mirror of https://github.com/abpframework/abp.git
csharpabpc-sharpframeworkblazoraspnet-coredotnet-coreaspnetcorearchitecturesaasdomain-driven-designangularmulti-tenancy
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
110 lines
3.7 KiB
110 lines
3.7 KiB
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
using Volo.Abp.GlobalFeatures;
|
|
using Volo.Abp.UI.Navigation;
|
|
using Volo.CmsKit.GlobalFeatures;
|
|
using Volo.CmsKit.Localization;
|
|
using Volo.CmsKit.Permissions;
|
|
|
|
namespace Volo.CmsKit.Admin.Web.Menus
|
|
{
|
|
public class CmsKitAdminMenuContributor : IMenuContributor
|
|
{
|
|
public async Task ConfigureMenuAsync(MenuConfigurationContext context)
|
|
{
|
|
if (context.Menu.Name == StandardMenus.Main)
|
|
{
|
|
await ConfigureMainMenuAsync(context);
|
|
}
|
|
}
|
|
|
|
private async Task ConfigureMainMenuAsync(MenuConfigurationContext context)
|
|
{
|
|
await AddCmsMenuAsync(context);
|
|
}
|
|
|
|
private async Task AddCmsMenuAsync(MenuConfigurationContext context)
|
|
{
|
|
var l = context.GetLocalizer<CmsKitResource>();
|
|
|
|
var cmsMenus = new List<ApplicationMenuItem>();
|
|
|
|
if (GlobalFeatureManager.Instance.IsEnabled<PagesFeature>())
|
|
{
|
|
if (await context.IsGrantedAsync(CmsKitAdminPermissions.Pages.Default))
|
|
{
|
|
cmsMenus.Add(new ApplicationMenuItem(
|
|
CmsKitAdminMenus.Pages.PagesMenu,
|
|
l["Pages"].Value,
|
|
"/Cms/Pages"));
|
|
}
|
|
}
|
|
|
|
if (GlobalFeatureManager.Instance.IsEnabled<BlogsFeature>())
|
|
{
|
|
if (await context.IsGrantedAsync(CmsKitAdminPermissions.Blogs.Default))
|
|
{
|
|
cmsMenus.Add(new ApplicationMenuItem(
|
|
CmsKitAdminMenus.Blogs.BlogsMenu,
|
|
l["Blogs"],
|
|
"/Cms/Blogs"
|
|
));
|
|
}
|
|
|
|
if (await context.IsGrantedAsync(CmsKitAdminPermissions.BlogPosts.Default))
|
|
{
|
|
cmsMenus.Add(new ApplicationMenuItem(
|
|
CmsKitAdminMenus.BlogPosts.BlogPostsMenu,
|
|
l["BlogPosts"],
|
|
"/Cms/BlogPosts"
|
|
));
|
|
}
|
|
}
|
|
|
|
if (GlobalFeatureManager.Instance.IsEnabled<TagsFeature>())
|
|
{
|
|
if (await context.IsGrantedAsync(CmsKitAdminPermissions.Tags.Default))
|
|
{
|
|
cmsMenus.Add(new ApplicationMenuItem(
|
|
CmsKitAdminMenus.Tags.TagsMenu,
|
|
l["Tags"].Value,
|
|
"/Cms/Tags"));
|
|
}
|
|
}
|
|
|
|
if (GlobalFeatureManager.Instance.IsEnabled<CommentsFeature>())
|
|
{
|
|
if (await context.IsGrantedAsync(CmsKitAdminPermissions.Comments.Default))
|
|
{
|
|
cmsMenus.Add(new ApplicationMenuItem(
|
|
CmsKitAdminMenus.Comments.CommentsMenu,
|
|
l["Comments"].Value,
|
|
"/Cms/Comments"
|
|
)
|
|
);
|
|
}
|
|
}
|
|
|
|
if (cmsMenus.Any())
|
|
{
|
|
var cmsMenu = context.Menu.FindMenuItem(CmsKitAdminMenus.GroupName);
|
|
|
|
if (cmsMenu == null)
|
|
{
|
|
cmsMenu = new ApplicationMenuItem(
|
|
CmsKitAdminMenus.GroupName,
|
|
l["Cms"],
|
|
icon: "far fa-newspaper");
|
|
|
|
context.Menu.AddItem(cmsMenu);
|
|
}
|
|
|
|
foreach (var menu in cmsMenus)
|
|
{
|
|
cmsMenu.AddItem(menu);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|