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.
 
 
 
 
 

71 lines
2.3 KiB

using System.Threading.Tasks;
using Faster.Zheng.Winin.Permissions;
using Faster.Zheng.Winin.Localization;
using Faster.Zheng.Winin.MultiTenancy;
using Volo.Abp.Identity.Web.Navigation;
using Volo.Abp.SettingManagement.Web.Navigation;
using Volo.Abp.TenantManagement.Web.Navigation;
using Volo.Abp.UI.Navigation;
namespace Faster.Zheng.Winin.Web.Menus;
public class WininMenuContributor : IMenuContributor
{
public async Task ConfigureMenuAsync(MenuConfigurationContext context)
{
if (context.Menu.Name == StandardMenus.Main)
{
await ConfigureMainMenuAsync(context);
}
}
private async Task ConfigureMainMenuAsync(MenuConfigurationContext context)
{
var administration = context.Menu.GetAdministration();
var l = context.GetLocalizer<WininResource>();
context.Menu.Items.Insert(
0,
new ApplicationMenuItem(
WininMenus.Home,
l["Menu:Home"],
"~/",
icon: "fas fa-home",
order: 0
)
);
if (MultiTenancyConsts.IsEnabled)
{
administration.SetSubItemOrder(TenantManagementMenuNames.GroupName, 1);
}
else
{
administration.TryRemoveMenuItem(TenantManagementMenuNames.GroupName);
}
administration.SetSubItemOrder(IdentityMenuNames.GroupName, 2);
administration.SetSubItemOrder(SettingManagementMenuNames.GroupName, 3);
if (await context.IsGrantedAsync(WininPermissions.TestSchool.Default))
{
context.Menu.AddItem(
new ApplicationMenuItem(WininMenus.TestSchool, l["Menu:TestSchool"], "/AppBusiness/TestSchool/TestSchool")
);
}
if (await context.IsGrantedAsync(WininPermissions.TestStudentDetail.Default))
{
context.Menu.AddItem(
new ApplicationMenuItem(WininMenus.TestStudentDetail, l["Menu:TestStudentDetail"], "/AppBusiness/TestSchool/TestStudentDetail")
);
}
//return Task.CompletedTask;
if (await context.IsGrantedAsync(WininPermissions.DemoCar.Default))
{
context.Menu.AddItem(
new ApplicationMenuItem(WininMenus.DemoCar, l["Menu:DemoCar"], "/AppBusiness/DemoCar/DemoCar")
);
}
}
}