@page "/admin/system" @using LucideBlazor @using Microsoft.AspNetCore.Authorization @using Microsoft.AspNetCore.Components.Authorization @using Moonlight.Shared @using ShadcnBlazor.Tab @inject NavigationManager Navigation @inject IAuthorizationService AuthorizationService Settings Themes API & API Keys Diagnose Instance @if (SettingsResult.Succeeded) { } @if (DiagnoseResult.Succeeded) { } @if (ApiKeyAccess.Succeeded) { } @if (ThemesAccess.Succeeded) { } @if (InstanceResult.Succeeded && VersionsResult.Succeeded) { } @code { [SupplyParameterFromQuery(Name = "tab")] [Parameter] public string? Tab { get; set; } [CascadingParameter] public Task AuthState { get; set; } private AuthorizationResult ApiKeyAccess; private AuthorizationResult ThemesAccess; private AuthorizationResult InstanceResult; private AuthorizationResult VersionsResult; private AuthorizationResult SettingsResult; private AuthorizationResult DiagnoseResult; protected override async Task OnInitializedAsync() { var authState = await AuthState; ApiKeyAccess = await AuthorizationService.AuthorizeAsync(authState.User, Permissions.ApiKeys.View); ThemesAccess = await AuthorizationService.AuthorizeAsync(authState.User, Permissions.Themes.View); InstanceResult = await AuthorizationService.AuthorizeAsync(authState.User, Permissions.System.Versions); VersionsResult = await AuthorizationService.AuthorizeAsync(authState.User, Permissions.System.Instance); SettingsResult = await AuthorizationService.AuthorizeAsync(authState.User, Permissions.System.Settings); DiagnoseResult = await AuthorizationService.AuthorizeAsync(authState.User, Permissions.System.Diagnose); } private void OnTabChanged(string name) { Navigation.NavigateTo($"/admin/system?tab={name}"); } }