@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}"); }