You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
iot/projects/Platform/Views/Shared/_TopMenu.cshtml

26 lines
1.2 KiB

@inject Microsoft.IdentityModel.Tokens.TokenValidationParameters parameters
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link" data-widget="pushmenu" href="#"><i class="fas fa-bars"></i></a>
</li>
<li class="nav-item d-none d-sm-inline-block">
<a href="@Url.Action("Index", "Home", new { area = "" })" class="@GetLinkClass(area: "")">首页</a>
</li>
@{
var modules = this.Context.Request.HttpContext.Items["modules"] as List<AppModule>;
if (modules != null)
{
var numbers = User.Claims.Where(o => o.Type == parameters.RoleClaimType).Select(o => o.Value).ToList();
foreach (var module in modules.Where(o=>o.PermissionCategories.SelectMany(o => o.Permissions).Any(o => numbers.Contains(o.Number))).OrderBy(o=>o.Order))
{
if (module.PermissionCategories.SelectMany(o => o.Permissions).Any(o => numbers.Contains(o.Number)))
{
<li class="nav-item d-none d-sm-inline-block">
<a href="@Url.Action("Index", "Home", new { area = module.Number })" class="@GetLinkClass(area: module.Number)">@module.Name</a>
</li>
}
}
}
}
</ul>