using Microsoft.AspNetCore.Mvc.RazorPages; using Microsoft.Extensions.DependencyInjection; using Volo.CmsKit.Admin.Web.Menus; using Volo.Abp.AspNetCore.Mvc.Localization; using Volo.Abp.Modularity; using Volo.Abp.UI.Navigation; using Volo.Abp.VirtualFileSystem; using Volo.CmsKit.Localization; using Volo.CmsKit.Web; using Volo.CmsKit.Permissions; using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.PageToolbars; using Volo.Abp.Localization; using Volo.Abp.AutoMapper; namespace Volo.CmsKit.Admin.Web { [DependsOn( typeof(CmsKitAdminHttpApiModule), typeof(CmsKitCommonWebModule) )] public class CmsKitAdminWebModule : AbpModule { public override void PreConfigureServices(ServiceConfigurationContext context) { context.Services.PreConfigure(options => { options.AddAssemblyResource( typeof(CmsKitResource), typeof(CmsKitAdminWebModule).Assembly, typeof(CmsKitAdminApplicationContractsModule).Assembly, typeof(CmsKitCommonApplicationContractsModule).Assembly ); }); PreConfigure(mvcBuilder => { mvcBuilder.AddApplicationPartIfNotExists(typeof(CmsKitAdminWebModule).Assembly); }); } public override void ConfigureServices(ServiceConfigurationContext context) { Configure(options => { options.MenuContributors.Add(new CmsKitAdminMenuContributor()); }); Configure(options => { options.FileSets.AddEmbedded("Volo.CmsKit.Admin.Web"); }); context.Services.AddAutoMapperObjectMapper(); Configure(options => { options.AddMaps(validate: true); }); Configure(options => { options.Conventions.AuthorizeFolder("/CmsKit/Tags/", CmsKitAdminPermissions.Tags.Default); options.Conventions.AuthorizeFolder("/CmsKit/Tags/CreateModal", CmsKitAdminPermissions.Tags.Create); options.Conventions.AuthorizeFolder("/CmsKit/Tags/UpdateModal", CmsKitAdminPermissions.Tags.Update); options.Conventions.AuthorizeFolder("/CmsKit/Pages", CmsKitAdminPermissions.Pages.Default); options.Conventions.AuthorizeFolder("/CmsKit/Pages/Create", CmsKitAdminPermissions.Pages.Create); options.Conventions.AuthorizeFolder("/CmsKit/Pages/Update", CmsKitAdminPermissions.Pages.Update); options.Conventions.AuthorizeFolder("/CmsKit/Blogs", CmsKitAdminPermissions.Blogs.Default); options.Conventions.AuthorizeFolder("/CmsKit/Blogs/Create", CmsKitAdminPermissions.Blogs.Create); options.Conventions.AuthorizeFolder("/CmsKit/Blogs/Update", CmsKitAdminPermissions.Blogs.Update); options.Conventions.AuthorizeFolder("/CmsKit/BlogPosts", CmsKitAdminPermissions.BlogPosts.Default); options.Conventions.AuthorizeFolder("/CmsKit/BlogPosts/Create", CmsKitAdminPermissions.BlogPosts.Create); options.Conventions.AuthorizeFolder("/CmsKit/BlogPosts/Update", CmsKitAdminPermissions.BlogPosts.Update); options.Conventions.AuthorizeFolder("/CmsKit/Comments/", CmsKitAdminPermissions.Comments.Default); options.Conventions.AuthorizeFolder("/CmsKit/Comments/Details", CmsKitAdminPermissions.Comments.Default); options.Conventions.AuthorizeFolder("/CmsKit/Menus", CmsKitAdminPermissions.Menus.Default); options.Conventions.AuthorizePage("/CmsKit/Menus/CreateModal", CmsKitAdminPermissions.Menus.Create); options.Conventions.AuthorizePage("/CmsKit/Menus/UpdateModal", CmsKitAdminPermissions.Menus.Update); options.Conventions.AuthorizeFolder("/CmsKit/Menus/MenuItems", CmsKitAdminPermissions.Menus.Update); }); Configure(options => { options.Conventions.AddPageRoute("/CmsKit/Tags/Index", "/Cms/Tags"); options.Conventions.AddPageRoute("/CmsKit/Pages/Index", "/Cms/Pages"); options.Conventions.AddPageRoute("/CmsKit/Pages/Create", "/Cms/Pages/Create"); options.Conventions.AddPageRoute("/CmsKit/Pages/Update", "/Cms/Pages/Update/{Id}"); options.Conventions.AddPageRoute("/CmsKit/Blogs/Index", "/Cms/Blogs"); options.Conventions.AddPageRoute("/CmsKit/BlogPosts/Index", "/Cms/BlogPosts"); options.Conventions.AddPageRoute("/CmsKit/BlogPosts/Create", "/Cms/BlogPosts/Create"); options.Conventions.AddPageRoute("/CmsKit/BlogPosts/Update", "/Cms/BlogPosts/Update/{Id}"); options.Conventions.AddPageRoute("/CmsKit/Comments/Index", "/Cms/Comments"); options.Conventions.AddPageRoute("/CmsKit/Comments/Details", "/Cms/Comments/{Id}"); options.Conventions.AddPageRoute("/CmsKit/Menus/Index", "/Cms/Menus"); options.Conventions.AddPageRoute("/CmsKit/Menus/MenuItems/Index", "/Cms/Menus/{Id}/menu-items"); }); Configure(options => { options.Configure( toolbar => { toolbar.AddButton( LocalizableString.Create("NewTag"), icon: "plus", name: "NewButton", requiredPolicyName: CmsKitAdminPermissions.Tags.Create ); } ); options.Configure( toolbar => { toolbar.AddButton( LocalizableString.Create("NewPage"), icon: "plus", name: "CreatePage", requiredPolicyName: CmsKitAdminPermissions.Pages.Create ); }); options.Configure( toolbar => { toolbar.AddButton( LocalizableString.Create("NewBlog"), icon: "plus", name: "CreateBlog", id: "CreateBlog", requiredPolicyName: CmsKitAdminPermissions.Blogs.Create ); }); options.Configure( toolbar => { toolbar.AddButton( LocalizableString.Create("NewBlogPost"), icon: "plus", name: "CreateBlogPost", id: "CreateBlogPost", requiredPolicyName: CmsKitAdminPermissions.BlogPosts.Create ); }); options.Configure( toolbar => { toolbar.AddButton( LocalizableString.Create("NewMenu"), icon: "plus", name: "CreateMenu", id: "CreateMenu", requiredPolicyName: CmsKitAdminPermissions.Menus.Create ); }); options.Configure( toolbar => { toolbar.AddButton( LocalizableString.Create("NewMenuItem"), icon: "plus", name: "CreateMenuItem", id: "CreateMenuItem", requiredPolicyName: CmsKitAdminPermissions.Menus.Update ); }); }); } } }