Browse Source

Add usermenu

pull/8137/head
Halil İbrahim Kalkan 6 years ago
parent
commit
f4f6f66760
  1. 53
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/Menus/MyProjectNameMenuContributor.cs
  2. 6
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyProjectNameBlazorModule.cs

53
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/Menus/MyProjectNameMenuContributor.cs

@ -1,21 +1,42 @@
using System.Threading.Tasks; using System;
using System.Threading.Tasks;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using MyCompanyName.MyProjectName.Localization; using MyCompanyName.MyProjectName.Localization;
using MyCompanyName.MyProjectName.MultiTenancy;
using Volo.Abp.Account.Localization;
using Volo.Abp.Identity.Blazor;
using Volo.Abp.SettingManagement.Blazor.Menus;
using Volo.Abp.TenantManagement.Blazor.Navigation;
using Volo.Abp.UI.Navigation; using Volo.Abp.UI.Navigation;
using Volo.Abp.Users;
namespace MyCompanyName.MyProjectName.Blazor.Server.Tiered.Menus namespace MyCompanyName.MyProjectName.Blazor.Server.Tiered.Menus
{ {
public class MyProjectNameMenuContributor : IMenuContributor public class MyProjectNameMenuContributor : IMenuContributor
{ {
private readonly IConfiguration _configuration;
public MyProjectNameMenuContributor(IConfiguration configuration)
{
_configuration = configuration;
}
public async Task ConfigureMenuAsync(MenuConfigurationContext context) public async Task ConfigureMenuAsync(MenuConfigurationContext context)
{ {
if (context.Menu.Name == StandardMenus.Main) if (context.Menu.Name == StandardMenus.Main)
{ {
await ConfigureMainMenuAsync(context); await ConfigureMainMenuAsync(context);
} }
else if (context.Menu.Name == StandardMenus.User)
{
await ConfigureUserMenuAsync(context);
}
} }
private Task ConfigureMainMenuAsync(MenuConfigurationContext context) private Task ConfigureMainMenuAsync(MenuConfigurationContext context)
{ {
var administration = context.Menu.GetAdministration();
var l = context.GetLocalizer<MyProjectNameResource>(); var l = context.GetLocalizer<MyProjectNameResource>();
context.Menu.Items.Insert( context.Menu.Items.Insert(
@ -27,6 +48,36 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Tiered.Menus
icon: "fas fa-home" icon: "fas fa-home"
) )
); );
if (MultiTenancyConsts.IsEnabled)
{
administration.SetSubItemOrder(TenantManagementMenuNames.GroupName, 1);
}
else
{
administration.TryRemoveMenuItem(TenantManagementMenuNames.GroupName);
}
administration.SetSubItemOrder(IdentityMenuNames.GroupName, 2);
administration.SetSubItemOrder(SettingManagementMenus.GroupName, 3);
return Task.CompletedTask;
}
private Task ConfigureUserMenuAsync(MenuConfigurationContext context)
{
var l = context.GetLocalizer<MyProjectNameResource>();
var accountStringLocalizer = context.GetLocalizer<AccountResource>();
var currentUser = context.ServiceProvider.GetRequiredService<ICurrentUser>();
var identityServerUrl = _configuration["AuthServer:Authority"] ?? "";
if (currentUser.IsAuthenticated)
{
context.Menu.AddItem(new ApplicationMenuItem("Account.Manage", accountStringLocalizer["ManageYourProfile"],
$"{identityServerUrl.EnsureEndsWith('/')}Account/Manage?returnUrl={_configuration["App:SelfUrl"]}", icon: "fa fa-cog", order: 1000, null, "_blank"));
context.Menu.AddItem(new ApplicationMenuItem("Account.Logout", l["Logout"], url: "~/Account/Logout", icon: "fa fa-power-off", order: int.MaxValue - 1000));
}
return Task.CompletedTask; return Task.CompletedTask;
} }

6
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyProjectNameBlazorModule.cs

@ -97,7 +97,7 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Tiered
ConfigureHttpClient(context); ConfigureHttpClient(context);
ConfigureBlazorise(context); ConfigureBlazorise(context);
ConfigureRouter(context); ConfigureRouter(context);
ConfigureMenu(context); ConfigureMenu(configuration);
ConfigureRedis(context, configuration, hostingEnvironment); ConfigureRedis(context, configuration, hostingEnvironment);
ConfigureSwaggerServices(context.Services); ConfigureSwaggerServices(context.Services);
} }
@ -240,11 +240,11 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Tiered
.AddFontAwesomeIcons(); .AddFontAwesomeIcons();
} }
private void ConfigureMenu(ServiceConfigurationContext context) private void ConfigureMenu(IConfiguration configuration)
{ {
Configure<AbpNavigationOptions>(options => Configure<AbpNavigationOptions>(options =>
{ {
options.MenuContributors.Add(new MyProjectNameMenuContributor()); options.MenuContributors.Add(new MyProjectNameMenuContributor(configuration));
}); });
Configure<AbpToolbarOptions>(options => Configure<AbpToolbarOptions>(options =>

Loading…
Cancel
Save