@page "/admin/system"
@using LucideBlazor
@using Microsoft.AspNetCore.Authorization
@using Microsoft.AspNetCore.Components.Authorization
@using Moonlight.Shared
@using ShadcnBlazor.Buttons
@using ShadcnBlazor.Cards
@using ShadcnBlazor.Inputs
@using ShadcnBlazor.Tab
@using ShadcnBlazor.Labels
@inject NavigationManager Navigation
@inject IAuthorizationService AuthorizationService
Settings
Themes
API & API Keys
Diagnose
Instance
@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;
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);
}
private void OnTabChanged(string name)
{
Navigation.NavigateTo($"/admin/system?tab={name}");
}
}