2025-03-11 19:22:54 -05:00
|
|
|
@inherits LayoutComponentBase
|
|
|
|
|
@using System.Security.Claims;
|
|
|
|
|
@inject AuthenticationStateProvider AuthenticationStateProvider
|
|
|
|
|
|
|
|
|
|
<Menu Mode="MenuMode.Inline" Style="border-right: 0;">
|
|
|
|
|
@if (User?.Identity?.IsAuthenticated ?? false)
|
|
|
|
|
{
|
|
|
|
|
<SubMenu Title="Profile" Placement="Placement.BottomRight">
|
|
|
|
|
<TitleTemplate>
|
|
|
|
|
<Icon Type="@IconType.Outline.User"/>
|
|
|
|
|
<span>@User?.Identity.Name</span>
|
|
|
|
|
</TitleTemplate>
|
|
|
|
|
<ChildContent>
|
|
|
|
|
<MenuItem RouterLink="/Profile">General</MenuItem>
|
|
|
|
|
<MenuItem RouterLink="/Profile/Library">Library</MenuItem>
|
|
|
|
|
<MenuItem RouterLink="/Profile/ConnectedAccounts">Connected Accounts</MenuItem>
|
|
|
|
|
<MenuItem RouterLink="/Profile/ChangePassword">Change Password</MenuItem>
|
|
|
|
|
<MenuItem RouterLink="/Profile/Saves">Saves</MenuItem>
|
|
|
|
|
<MenuItem RouterLink="/Logout">Logout</MenuItem>
|
|
|
|
|
</ChildContent>
|
|
|
|
|
</SubMenu>
|
2025-11-16 12:31:25 -06:00
|
|
|
<MenuItem RouterLink="/Chat" Icon="@IconType.Outline.Message">Chat</MenuItem>
|
2025-03-11 19:22:54 -05:00
|
|
|
<MenuDivider/>
|
|
|
|
|
}
|
|
|
|
|
<SubMenu>
|
|
|
|
|
<TitleTemplate>
|
|
|
|
|
<Icon Type="@IconType.Outline.Dashboard"/>
|
|
|
|
|
<span>Dashboards</span>
|
|
|
|
|
</TitleTemplate>
|
|
|
|
|
<ChildContent>
|
|
|
|
|
<MenuItem RouterLink="/">Overview</MenuItem>
|
|
|
|
|
<MenuItem RouterLink="/Dashboard/SessionPlaytime">Average Session Playtime</MenuItem>
|
|
|
|
|
</ChildContent>
|
|
|
|
|
</SubMenu>
|
|
|
|
|
<MenuDivider/>
|
|
|
|
|
@if (User != null && User.IsInRole(RoleService.AdministratorRoleName))
|
|
|
|
|
{
|
|
|
|
|
<MenuItem RouterLink="/Games" Icon="@IconType.Outline.Appstore">Games</MenuItem>
|
|
|
|
|
<SubMenu>
|
|
|
|
|
<TitleTemplate>
|
|
|
|
|
<Icon Type="@IconType.Outline.Tags"/>
|
|
|
|
|
<span>Metadata</span>
|
|
|
|
|
</TitleTemplate>
|
|
|
|
|
<ChildContent>
|
|
|
|
|
<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>
|
|
|
|
|
</ChildContent>
|
|
|
|
|
</SubMenu>
|
|
|
|
|
<MenuItem RouterLink="/Redistributables" Icon="@IconType.Outline.Block">Redistributables</MenuItem>
|
|
|
|
|
<MenuItem RouterLink="/Servers" Icon="@IconType.Outline.Database">Servers</MenuItem>
|
|
|
|
|
<MenuDivider/>
|
|
|
|
|
<SubMenu>
|
|
|
|
|
<TitleTemplate>
|
|
|
|
|
<Icon Type="@IconType.Outline.Read"/>
|
|
|
|
|
<span>Pages</span>
|
|
|
|
|
</TitleTemplate>
|
|
|
|
|
<ChildContent>
|
|
|
|
|
<MenuItem RouterLink="/Pages/Edit">Edit</MenuItem>
|
|
|
|
|
<MenuItem RouterLink="/Pages">View</MenuItem>
|
|
|
|
|
</ChildContent>
|
|
|
|
|
</SubMenu>
|
|
|
|
|
<MenuItem RouterLink="/Issues" Icon="@IconType.Outline.Bug">Issues</MenuItem>
|
|
|
|
|
<MenuItem RouterLink="/Files" Icon="@IconType.Outline.Folder">Files</MenuItem>
|
|
|
|
|
<SubMenu>
|
|
|
|
|
<TitleTemplate>
|
|
|
|
|
<Icon Type="@IconType.Outline.Setting"/>
|
|
|
|
|
<span>Settings</span>
|
|
|
|
|
</TitleTemplate>
|
|
|
|
|
<ChildContent>
|
|
|
|
|
<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/Appearance">Appearance</MenuItem>
|
|
|
|
|
<MenuItem RouterLink="/Settings/UserSaves">User Saves</MenuItem>
|
|
|
|
|
<MenuItem RouterLink="/Settings/Library">Library</MenuItem>
|
|
|
|
|
<MenuItem RouterLink="/Settings/Archives">Archives</MenuItem>
|
|
|
|
|
<MenuItem RouterLink="/Settings/Media">Media</MenuItem>
|
|
|
|
|
<MenuItem RouterLink="/Settings/Scripts">Scripts</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>
|
2025-08-03 18:20:39 -05:00
|
|
|
<SubMenu Title="Integrations">
|
2026-01-18 19:36:24 -06:00
|
|
|
<MenuItem RouterLink="/Settings/Integrations/IGDB">IGDB</MenuItem>
|
2025-08-03 18:20:39 -05:00
|
|
|
<MenuItem RouterLink="/Settings/Integrations/Steam">Steam</MenuItem>
|
2026-01-18 19:36:24 -06:00
|
|
|
<MenuItem RouterLink="/Settings/Integrations/SteamGridDB">SteamGridDB</MenuItem>
|
2025-08-03 18:20:39 -05:00
|
|
|
</SubMenu>
|
2025-03-11 20:16:02 -05:00
|
|
|
<MenuItem RouterLink="/api">API</MenuItem>
|
2025-03-11 19:22:54 -05:00
|
|
|
</ChildContent>
|
|
|
|
|
</SubMenu>
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
<MenuItem RouterLink="/Pages" Icon="@IconType.Outline.Read">Pages</MenuItem>
|
|
|
|
|
}
|
|
|
|
|
</Menu>
|
|
|
|
|
|
|
|
|
|
@code {
|
|
|
|
|
ClaimsPrincipal User;
|
|
|
|
|
|
|
|
|
|
protected override async Task OnInitializedAsync()
|
|
|
|
|
{
|
|
|
|
|
var authState = await AuthenticationStateProvider.GetAuthenticationStateAsync();
|
|
|
|
|
|
|
|
|
|
if (authState.User.Identity.IsAuthenticated)
|
|
|
|
|
User = authState.User;
|
|
|
|
|
}
|
|
|
|
|
}
|