LANCommander/LANCommander.Server/UI/Shared/MainLayout.razor
2024-08-04 18:44:33 -05:00

80 lines
No EOL
3.7 KiB
Text

@inherits LayoutComponentBase
@using Microsoft.AspNetCore.Components.Authorization;
@using System.Security.Claims;
@inject AuthenticationStateProvider AuthenticationStateProvider
<Layout Class="layout">
<MainMenu>
<LeftContent>
<SubMenu Title="Dashboards">
<MenuItem RouterLink="/">Overview</MenuItem>
<MenuItem RouterLink="/Dashboard/SessionPlaytime">Average Session Playtime</MenuItem>
</SubMenu>
@if (User != null && User.IsInRole("Administrator"))
{
<MenuItem RouterLink="/Games">Games</MenuItem>
<SubMenu Title="Metadata">
<MenuItem RouterLink="/Metadata/Collections">Collections</MenuItem>
<MenuItem RouterLink="/Metadata/Companies">Companies</MenuItem>
<MenuItem RouterLink="/Metadata/Engines">Engines</MenuItem>
<MenuItem RouterLink="/Metadata/Genres">Genres</MenuItem>
<MenuItem RouterLink="/Metadata/Platforms">Platforms</MenuItem>
<MenuItem RouterLink="/Metadata/Tags">Tags</MenuItem>
</SubMenu>
<MenuItem RouterLink="/Redistributables">Redistributables</MenuItem>
<MenuItem RouterLink="/Servers">Servers</MenuItem>
<MenuItem RouterLink="/Files">Files</MenuItem>
<SubMenu Title="Settings">
<MenuItem RouterLink="/Settings/General">General</MenuItem>
<MenuItem RouterLink="/Settings/Users">Users</MenuItem>
<MenuItem RouterLink="/Settings/Roles">Roles</MenuItem>
<MenuItem RouterLink="/Settings/Authentication">Authentication</MenuItem>
<MenuItem RouterLink="/Settings/UserSaves">User Saves</MenuItem>
<MenuItem RouterLink="/Settings/Archives">Archives</MenuItem>
<MenuItem RouterLink="/Settings/Media">Media</MenuItem>
<MenuItem RouterLink="/Settings/IPXRelay">IPX Relay</MenuItem>
<MenuItem RouterLink="/Settings/Servers">Servers</MenuItem>
<MenuItem RouterLink="/Settings/Beacon">Beacon</MenuItem>
<MenuItem RouterLink="/Settings/Tools">Tools</MenuItem>
<MenuItem RouterLink="/Settings/Logs">Logs</MenuItem>
<MenuItem RouterLink="/Settings/Launcher">Launcher</MenuItem>
<MenuItem RouterLink="/Settings/Updates">Updates</MenuItem>
</SubMenu>
}
</LeftContent>
<RightContent>
<SubMenu Title="Profile" Placement="Placement.BottomRight">
<TitleTemplate>
<Icon Type="@IconType.Outline.User" />
</TitleTemplate>
<ChildContent>
<MenuItem RouterLink="/Profile">General</MenuItem>
<MenuItem RouterLink="/Profile/ChangePassword">Change Password</MenuItem>
<MenuItem RouterLink="/Profile/Saves">Saves</MenuItem>
<MenuItem RouterLink="/Identity/Account/Logout">Logout</MenuItem>
</ChildContent>
</SubMenu>
</RightContent>
</MainMenu>
<Content Style="padding: 24px;">
@Body
</Content>
<Footer Style="text-align: center; padding-top: 0;">
LANCommander v@(UpdateService.GetCurrentVersion().ToString())
</Footer>
</Layout>
@code {
ClaimsPrincipal User;
protected override async Task OnInitializedAsync()
{
var authState = await AuthenticationStateProvider.GetAuthenticationStateAsync();
if (authState.User.Identity.IsAuthenticated)
User = authState.User;
}
}