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> 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) public AppUser GetCurrentUser(string userName)

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

@ -15,9 +15,8 @@
</NavLink> </NavLink>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<NavLink class="nav-link" href="list"> <NavLink class="nav-link" href="shop">
<span class="topbar_item"> <span class="topbar_item">
<img src="/Images/shop_icon.png" class="topbar_itemimg"/> @Localizer["Shop"] <img src="/Images/shop_icon.png" class="topbar_itemimg"/> @Localizer["Shop"]
</span> </span>
@ -35,9 +34,26 @@
</span> </span>
</NavLink> </NavLink>
</li> </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> </ul>
</div> </div>
<button type="button" class="btn btn-link ml-md-auto" @onclick="@LogoutClick">Logout</button>
</div> </div>
</nav> </nav>
</div> </div>

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

Loading…
Cancel
Save