@page "/admin/servers"
@using LucideBlazor
@using MoonlightServers.Shared
@using ShadcnBlazor.Tab
@inject IAuthorizationService AuthorizationService
@inject NavigationManager Navigation
@attribute [Authorize(Policy = Permissions.Servers.View)]
Servers
Nodes
Templates
Manager
@if (ServersAccess.Succeeded)
{
}
@if (NodesAccess.Succeeded)
{
}
@if (TemplatesAccess.Succeeded)
{
}
@code
{
[Parameter]
[SupplyParameterFromQuery(Name = "tab")]
public string? Tab { get; set; }
[CascadingParameter] public Task AuthState { get; set; }
private AuthorizationResult ServersAccess;
private AuthorizationResult NodesAccess;
private AuthorizationResult TemplatesAccess;
protected override async Task OnInitializedAsync()
{
var authState = await AuthState;
ServersAccess = await AuthorizationService.AuthorizeAsync(authState.User, Permissions.Servers.View);
NodesAccess = await AuthorizationService.AuthorizeAsync(authState.User, Permissions.Nodes.View);
TemplatesAccess = await AuthorizationService.AuthorizeAsync(authState.User, Permissions.Templates.View);
}
private void OnTabChanged(string tab) => Navigation.NavigateTo($"/admin/servers?tab={tab}");
}