From 4dada1681f2ffa4f233e3686b908fbc3a05ba334 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Mon, 21 Jan 2019 08:38:55 +0300 Subject: [PATCH] microservice demo: added menu contributor --- .../Resources/ProductManagement/en.json | 3 ++- .../ProductManagementMenuContributor.cs | 19 ++++++++++++++++--- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/samples/MicroserviceDemo/modules/product/src/ProductManagement.Web/Localization/Resources/ProductManagement/en.json b/samples/MicroserviceDemo/modules/product/src/ProductManagement.Web/Localization/Resources/ProductManagement/en.json index 92e4e9582b..012b6138cc 100644 --- a/samples/MicroserviceDemo/modules/product/src/ProductManagement.Web/Localization/Resources/ProductManagement/en.json +++ b/samples/MicroserviceDemo/modules/product/src/ProductManagement.Web/Localization/Resources/ProductManagement/en.json @@ -1,6 +1,7 @@ { "culture": "en", "texts": { - + "Menu:ProductManagement": "Product Management", + "Menu:Products": "Products" } } \ No newline at end of file diff --git a/samples/MicroserviceDemo/modules/product/src/ProductManagement.Web/ProductManagementMenuContributor.cs b/samples/MicroserviceDemo/modules/product/src/ProductManagement.Web/ProductManagementMenuContributor.cs index 7c2990e87c..0710ebfcfe 100644 --- a/samples/MicroserviceDemo/modules/product/src/ProductManagement.Web/ProductManagementMenuContributor.cs +++ b/samples/MicroserviceDemo/modules/product/src/ProductManagement.Web/ProductManagementMenuContributor.cs @@ -1,4 +1,8 @@ using System.Threading.Tasks; +using Microsoft.AspNetCore.Authorization; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Localization; +using ProductManagement.Localization; using Volo.Abp.UI.Navigation; namespace ProductManagement @@ -13,11 +17,20 @@ namespace ProductManagement } } - private Task ConfigureMainMenu(MenuConfigurationContext context) + private async Task ConfigureMainMenu(MenuConfigurationContext context) { - //Add main menu items. + var authorizationService = context.ServiceProvider.GetRequiredService(); + var l = context.ServiceProvider.GetRequiredService>(); - return Task.CompletedTask; + + var rootMenuItem = new ApplicationMenuItem("ProductManagement", l["Menu:ProductManagement"]); + + if (await authorizationService.IsGrantedAsync(ProductManagementPermissions.Products.Default)) + { + rootMenuItem.AddItem(new ApplicationMenuItem("Products", l["Menu:Products"], "/ProductManagement/Products")); + } + + context.Menu.AddItem(rootMenuItem); } } } \ No newline at end of file