Adding admin option to the menu

arthur_menu
Arthur VALIN 2 years ago
parent 27bf855998
commit 905db68161

@ -12,7 +12,7 @@ namespace CraftSharp.Services
{
CurrentUser = new List<AppUser>
{
new AppUser { UserName = "Admin", Password = "123456", Roles = new List<UserRoles> { UserRoles.Admin }, numberOfKeys=5 }
new AppUser { UserName = "Admin", Password = "123456", Roles = new List<UserRoles> { UserRoles.Admin }, numberOfKeys=999 }
};
}
public AppUser GetCurrentUser(string userName)

@ -13,6 +13,7 @@
<div class="px-4 culture">
<CultureSelector/>
</div>
</div>
</div>

@ -15,9 +15,8 @@
</NavLink>
</li>
<li class="nav-item">
<NavLink class="nav-link" href="list">
<NavLink class="nav-link" href="shop">
<span class="topbar_item">
<img src="/Images/shop_icon.png" class="topbar_itemimg"/> @Localizer["Shop"]
</span>
@ -35,9 +34,26 @@
</span>
</NavLink>
</li>
<button type="button" class="btn btn-link ml-md-auto" @onclick="@LogoutClick">Logout</button>
@if (isUserAdmin)
{
<li class="nav-item">
<NavLink class="nav-link" href="list">
<span class="topbar_item">
<img src="/Images/admin_icon.png" class="topbar_itemimg" /> Admin
</span>
</NavLink>
</li>
}
else
{
<li class="nav-item">
<span class="topbar_item" style="visibility: hidden">
</span>
</li>
}
</ul>
</div>
<button type="button" class="btn btn-link ml-md-auto" @onclick="@LogoutClick">Logout</button>
</div>
</nav>
</div>

@ -1,4 +1,5 @@
using CraftSharp.Services;
using CraftSharp.Models;
using CraftSharp.Services;
using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.Components.Authorization;
using Microsoft.Extensions.Localization;
@ -11,6 +12,9 @@ namespace CraftSharp.Shared
[Inject]
public IStringLocalizer<HeaderLayout> Localizer { get; set; }
[Inject]
public IAuthService AuthService { get; set; }
[Inject]
public CustomStateProvider AuthStateProvider { get; set; }
@ -20,6 +24,13 @@ namespace CraftSharp.Shared
[CascadingParameter]
private Task<AuthenticationState> AuthenticationState { get; set; }
private bool isUserAdmin = false;
protected override async Task OnInitializedAsync()
{
isAdmin();
}
void goInscription()
{
NavigationManager.NavigateTo("inscription");
@ -30,6 +41,13 @@ namespace CraftSharp.Shared
NavigationManager.NavigateTo("connexion");
}
async public void isAdmin()
{
var authState = await AuthenticationState;
var roles = AuthService.GetCurrentUser(authState.User.Identity.Name).Roles;
isUserAdmin = roles.Contains(UserRoles.Admin);
}
/* protected override async Task OnParametersSetAsync()
{
if (!(await AuthenticationState).User.Identity.IsAuthenticated)

Loading…
Cancel
Save