Resolved #311: Don't show Login if account module is not available

pull/318/head
Halil ibrahim Kalkan 7 years ago
parent 74a34ea95c
commit a7cd9379a8

@ -7,27 +7,20 @@
@inject ICurrentTenant CurrentTenant
@inject IHtmlLocalizer<AbpUiResource> L
@model ApplicationMenu
@if (CurrentUser.IsAuthenticated)
{
<div class="dropdown d-inline">
<a class="btn btn-link dropdown-toggle" href="#" role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
@CurrentUser.UserName
</a>
<div class="dropdown d-inline">
<a class="btn btn-link dropdown-toggle" href="#" role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
@CurrentUser.UserName
</a>
@if (Model.Items.Any())
{
<div class="dropdown-menu" aria-labelledby="dropdownMenuLink">
@foreach (var menuItem in Model.Items)
{
<a class="dropdown-item" href="@menuItem.Url">@menuItem.DisplayName</a>
}
@if (Model.Items.Any())
{
<div class="dropdown-menu" aria-labelledby="dropdownMenuLink">
@foreach (var menuItem in Model.Items)
{
<a class="dropdown-item" href="@menuItem.Url">@menuItem.DisplayName</a>
}
@*<a class="dropdown-item" href="/Account/Logout">@L["Logout"]</a>*@
</div>
}
</div>
}
else
{
<a href="/Account/Login">@L["Login"]</a>
}
@*<a class="dropdown-item" href="/Account/Logout">@L["Logout"]</a>*@
</div>
}
</div>

@ -6,6 +6,7 @@ using Microsoft.Extensions.Options;
using Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Themes.Basic.Components.Toolbar.LanguageSwitch;
using Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Themes.Basic.Components.Toolbar.UserMenu;
using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Toolbars;
using Volo.Abp.Users;
namespace Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Toolbars
{
@ -30,7 +31,10 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Toolbars
context.Toolbar.Items.Add(new ToolbarItem(typeof(LanguageSwitchViewComponent)));
}
context.Toolbar.Items.Add(new ToolbarItem(typeof(UserMenuViewComponent)));
if (context.ServiceProvider.GetRequiredService<ICurrentUser>().IsAuthenticated)
{
context.Toolbar.Items.Add(new ToolbarItem(typeof(UserMenuViewComponent)));
}
return Task.CompletedTask;
}

@ -3,7 +3,7 @@ using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.Account.Web.Localization;
using Volo.Abp.Account.Web.Settings;
using Volo.Abp.AspNetCore.Mvc.Localization;
using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap;
using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared;
using Volo.Abp.Identity;
using Volo.Abp.Localization;
using Volo.Abp.Localization.Resources.AbpValidation;
@ -15,7 +15,7 @@ using Volo.Abp.VirtualFileSystem;
namespace Volo.Abp.Account.Web
{
[DependsOn(typeof(AbpIdentityDomainModule))]
[DependsOn(typeof(AbpAspNetCoreMvcUiBootstrapModule))]
[DependsOn(typeof(AbpAspNetCoreMvcUiThemeSharedModule))]
public class AbpAccountWebModule : AbpModule
{
public override void PreConfigureServices(IServiceCollection services)

@ -0,0 +1,26 @@
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.Account.Web.Modules.Account.Components.Toolbar.UserLoginLink;
using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Toolbars;
using Volo.Abp.Users;
namespace Volo.Abp.Account.Web
{
public class AccountModuleToolbarContributor : IToolbarContributor
{
public Task ConfigureToolbarAsync(IToolbarConfigurationContext context)
{
if (context.Toolbar.Name != StandardToolbars.Main)
{
return Task.CompletedTask;
}
if (!context.ServiceProvider.GetRequiredService<ICurrentUser>().IsAuthenticated)
{
context.Toolbar.Items.Add(new ToolbarItem(typeof(UserLoginLinkViewComponent)));
}
return Task.CompletedTask;
}
}
}

@ -0,0 +1,4 @@
@using Localization.Resources.AbpUi
@using Microsoft.AspNetCore.Mvc.Localization
@inject IHtmlLocalizer<AbpUiResource> L
<a href="/Account/Login">@L["Login"]</a>

@ -0,0 +1,13 @@
using Microsoft.AspNetCore.Mvc;
using Volo.Abp.AspNetCore.Mvc;
namespace Volo.Abp.Account.Web.Modules.Account.Components.Toolbar.UserLoginLink
{
public class UserLoginLinkViewComponent : AbpViewComponent
{
public IViewComponentResult Invoke()
{
return View("~/Modules/Account/Components/Toolbar/UserLoginLink/Default.cshtml");
}
}
}

@ -22,8 +22,8 @@
<ItemGroup>
<ProjectReference Include="..\..\..\identity\src\Volo.Abp.Identity.Domain\Volo.Abp.Identity.Domain.csproj" />
<ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.AspNetCore.Mvc.UI.Bootstrap\Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.csproj" />
<ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared\Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.csproj" />
</ItemGroup>
</Project>

Loading…
Cancel
Save