implement optional Security parameter for TabPanel #797
This commit is contained in:
parent
5b49e1bc7c
commit
d7135ad4f9
|
@ -27,6 +27,9 @@ else
|
||||||
[Parameter]
|
[Parameter]
|
||||||
public string Heading { get; set; } // optional - defaults to name if not specified
|
public string Heading { get; set; } // optional - defaults to name if not specified
|
||||||
|
|
||||||
|
[Parameter]
|
||||||
|
public SecurityAccessLevel? Security { get; set; } // optional - can be used to specify SecurityAccessLevel
|
||||||
|
|
||||||
protected override void OnInitialized()
|
protected override void OnInitialized()
|
||||||
{
|
{
|
||||||
base.OnInitialized();
|
base.OnInitialized();
|
||||||
|
|
|
@ -7,20 +7,23 @@
|
||||||
<ul class="nav nav-tabs" role="tablist">
|
<ul class="nav nav-tabs" role="tablist">
|
||||||
@foreach (TabPanel tabPanel in _tabPanels)
|
@foreach (TabPanel tabPanel in _tabPanels)
|
||||||
{
|
{
|
||||||
<li class="nav-item">
|
@if (IsAuthorized(tabPanel))
|
||||||
@if (tabPanel.Name == ActiveTab)
|
{
|
||||||
{
|
<li class="nav-item">
|
||||||
<a class="nav-link active" data-toggle="tab" href="#@tabPanel.Name" role="tab" @onclick:preventDefault="true">
|
@if (tabPanel.Name == ActiveTab)
|
||||||
@tabPanel.DisplayHeading()
|
{
|
||||||
</a>
|
<a class="nav-link active" data-toggle="tab" href="#@tabPanel.Name" role="tab" @onclick:preventDefault="true">
|
||||||
}
|
@tabPanel.DisplayHeading()
|
||||||
else
|
</a>
|
||||||
{
|
}
|
||||||
<a class="nav-link" data-toggle="tab" href="#@tabPanel.Name" role="tab" @onclick:preventDefault="true">
|
else
|
||||||
@tabPanel.DisplayHeading()
|
{
|
||||||
</a>
|
<a class="nav-link" data-toggle="tab" href="#@tabPanel.Name" role="tab" @onclick:preventDefault="true">
|
||||||
}
|
@tabPanel.DisplayHeading()
|
||||||
</li>
|
</a>
|
||||||
|
}
|
||||||
|
</li>
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</ul>
|
</ul>
|
||||||
<div class="tab-content">
|
<div class="tab-content">
|
||||||
|
@ -57,4 +60,31 @@
|
||||||
}
|
}
|
||||||
StateHasChanged();
|
StateHasChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private bool IsAuthorized(TabPanel tabPanel)
|
||||||
|
{
|
||||||
|
var authorized = false;
|
||||||
|
switch (tabPanel.Security)
|
||||||
|
{
|
||||||
|
case null: // security not specified - assume SecurityAccessLevel.Anonymous
|
||||||
|
authorized = true;
|
||||||
|
break;
|
||||||
|
case SecurityAccessLevel.Anonymous:
|
||||||
|
authorized = true;
|
||||||
|
break;
|
||||||
|
case SecurityAccessLevel.View:
|
||||||
|
authorized = UserSecurity.IsAuthorized(PageState.User, PermissionNames.View, ModuleState.Permissions);
|
||||||
|
break;
|
||||||
|
case SecurityAccessLevel.Edit:
|
||||||
|
authorized = UserSecurity.IsAuthorized(PageState.User, PermissionNames.Edit, ModuleState.Permissions);
|
||||||
|
break;
|
||||||
|
case SecurityAccessLevel.Admin:
|
||||||
|
authorized = UserSecurity.IsAuthorized(PageState.User, RoleNames.Admin);
|
||||||
|
break;
|
||||||
|
case SecurityAccessLevel.Host:
|
||||||
|
authorized = UserSecurity.IsAuthorized(PageState.User, RoleNames.Host);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return authorized;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user