Fixed some permissions. Cleaned some UIs

This commit is contained in:
Marcel Baumgartner
2023-07-17 16:22:22 +02:00
parent 0a86aa8aa4
commit 0015001d7c
11 changed files with 457 additions and 478 deletions

View File

@@ -135,10 +135,10 @@ public static class Permissions
Description = "Edit server image settings in the admin area" Description = "Edit server image settings in the admin area"
}; };
public static Permission AdminServerImageIndex = new() public static Permission AdminServerImages = new()
{ {
Index = 21, Index = 21,
Name = "Admin Server Image", Name = "Admin Server Images",
Description = "Access the server image management page in the admin area" Description = "Access the server image management page in the admin area"
}; };

View File

@@ -1,22 +0,0 @@
<div class="card mb-5 mb-xl-10">
<div class="card-body pt-0 pb-0">
<ul class="nav nav-stretch nav-line-tabs nav-line-tabs-2x border-transparent fs-5 fw-bold">
<li class="nav-item mt-2">
<a class="nav-link text-active-primary ms-0 me-10 py-5 @(Index == 0 ? "active" : "")" href="/admin/nodes">
<TL>Nodes</TL>
</a>
</li>
<li class="nav-item mt-2">
<a class="nav-link text-active-primary ms-0 me-10 py-5 @(Index == 1 ? "active" : "")" href="/admin/nodes/ddos">
<TL>DDos</TL>
</a>
</li>
</ul>
</div>
</div>
@code
{
[Parameter]
public int Index { get; set; } = 0;
}

View File

@@ -0,0 +1,37 @@
<div class="card mb-5 mb-xl-10">
<div class="card-body pt-0 pb-0">
<ul class="nav nav-stretch nav-line-tabs nav-line-tabs-2x border-transparent fs-5 fw-bold">
<li class="nav-item mt-2">
<a class="nav-link text-active-primary ms-0 me-10 py-5 @(Index == 0 ? "active" : "")" href="/admin/servers">
<TL>Overview</TL>
</a>
</li>
<li class="nav-item mt-2">
<a class="nav-link text-active-primary ms-0 me-10 py-5 @(Index == 1 ? "active" : "")" href="/admin/servers/manager">
<TL>Manager</TL>
</a>
</li>
<li class="nav-item mt-2">
<a class="nav-link text-active-primary ms-0 me-10 py-5 @(Index == 2 ? "active" : "")" href="/admin/servers/cleanup">
<TL>Cleanup</TL>
</a>
</li>
<li class="nav-item mt-2">
<a class="nav-link text-active-primary ms-0 me-10 py-5 @(Index == 3 ? "active" : "")" href="/admin/nodes">
<TL>Nodes</TL>
</a>
</li>
<li class="nav-item mt-2">
<a class="nav-link text-active-primary ms-0 me-10 py-5 @(Index == 4 ? "active" : "")" href="/admin/servers/images">
<TL>Images</TL>
</a>
</li>
</ul>
</div>
</div>
@code
{
[Parameter]
public int Index { get; set; } = 0;
}

View File

@@ -92,61 +92,14 @@ else
<span class="menu-title"><TL>System</TL></span> <span class="menu-title"><TL>System</TL></span>
</a> </a>
</div> </div>
<div data-kt-menu-trigger="click" class="menu-item menu-accordion"> <div class="menu-item">
<span class="menu-link"> <a class="menu-link" href="/admin/servers">
<span class="menu-icon"> <span class="menu-icon">
<i class="bx bx-server"></i> <i class="bx bx-server"></i>
</span> </span>
<span class="menu-title"><TL>Servers</TL></span> <span class="menu-title"><TL>Servers</TL></span>
<span class="menu-arrow"></span>
</span>
<div class="menu-sub menu-sub-accordion">
<div class="menu-item">
<a class="menu-link" href="/admin/servers">
<span class="menu-bullet">
<span class="bullet bullet-dot"></span>
</span>
<span class="menu-title"><TL>Overview</TL></span>
</a> </a>
</div> </div>
<div class="menu-item">
<a class="menu-link" href="/admin/servers/manager">
<span class="menu-bullet">
<span class="bullet bullet-dot"></span>
</span>
<span class="menu-title"><TL>Manager</TL></span>
</a>
</div>
<div class="menu-item">
<a class="menu-link" href="/admin/servers/cleanup">
<span class="menu-bullet">
<span class="bullet bullet-dot"></span>
</span>
<span class="menu-title"><TL>Cleanup</TL></span>
</a>
</div>
<div class="menu-item">
<a class="menu-link" href="/admin/nodes">
<span class="menu-bullet">
<span class="bullet bullet-dot"></span>
</span>
<span class="menu-title"><TL>Nodes</TL></span>
</a>
</div>
<div class="menu-item">
<a class="menu-link" href="/admin/servers/images">
<span class="menu-bullet">
<span class="bullet bullet-dot"></span>
</span>
<span class="menu-title"><TL>Images</TL></span>
</a>
</div>
</div>
</div>
<div class="menu-item"> <div class="menu-item">
<a class="menu-link" href="/admin/webspaces"> <a class="menu-link" href="/admin/webspaces">
<span class="menu-icon"> <span class="menu-icon">

View File

@@ -99,4 +99,6 @@
{ {
await Event.Off("node.ddos", this); await Event.Off("node.ddos", this);
} }
//TODO: Move to security
} }

View File

@@ -15,7 +15,7 @@
@attribute [PermissionRequired(nameof(Permissions.AdminNodes))] @attribute [PermissionRequired(nameof(Permissions.AdminNodes))]
<AdminNodesNavigation Index="0"/> <AdminServersNavigation Index="3" />
<LazyLoader @ref="LazyLoader" Load="Load"> <LazyLoader @ref="LazyLoader" Load="Load">
<div class="card"> <div class="card">

View File

@@ -1,6 +1,7 @@
@page "/admin/servers/cleanup" @page "/admin/servers/cleanup"
@using Moonlight.App.Events @using Moonlight.App.Events
@using Moonlight.App.Services.Background @using Moonlight.App.Services.Background
@using Moonlight.Shared.Components.Navigations
@inject CleanupService CleanupService @inject CleanupService CleanupService
@inject EventSystem Event @inject EventSystem Event
@@ -9,6 +10,8 @@
@attribute [PermissionRequired(nameof(Permissions.AdminServerCleanup))] @attribute [PermissionRequired(nameof(Permissions.AdminServerCleanup))]
<AdminServersNavigation Index="2" />
<div class="row g-5 g-xl-10 mb-5 mb-xl-10"> <div class="row g-5 g-xl-10 mb-5 mb-xl-10">
<div class="col-xl-3"> <div class="col-xl-3">
<div class="card card-flush bgi-no-repeat bgi-size-contain bgi-position-x-end h-xl-100" style="background-color: #170049;"> <div class="card card-flush bgi-no-repeat bgi-size-contain bgi-position-x-end h-xl-100" style="background-color: #170049;">

View File

@@ -12,7 +12,8 @@
@inject ToastService ToastService @inject ToastService ToastService
@inject FileDownloadService FileDownloadService @inject FileDownloadService FileDownloadService
<OnlyAdmin> @attribute [PermissionRequired(nameof(Permissions.AdminServerImageEdit))]
<div class="row"> <div class="row">
<LazyLoader @ref="LazyLoader" Load="Load"> <LazyLoader @ref="LazyLoader" Load="Load">
@if (Image == null) @if (Image == null)
@@ -257,7 +258,6 @@ else
} }
</LazyLoader> </LazyLoader>
</div> </div>
</OnlyAdmin>
@code @code
{ {

View File

@@ -9,6 +9,7 @@
@using System.Text @using System.Text
@using Moonlight.App.Helpers @using Moonlight.App.Helpers
@using Newtonsoft.Json @using Newtonsoft.Json
@using Moonlight.Shared.Components.Navigations
@inject Repository<Image> ImageRepository @inject Repository<Image> ImageRepository
@inject Repository<ImageVariable> ImageVariableRepository @inject Repository<ImageVariable> ImageVariableRepository
@@ -16,8 +17,10 @@
@inject SmartTranslateService SmartTranslateService @inject SmartTranslateService SmartTranslateService
@inject AlertService AlertService @inject AlertService AlertService
<OnlyAdmin> @attribute [PermissionRequired(nameof(Permissions.AdminServerImages))]
<div class="row">
<AdminServersNavigation Index="4" />
<LazyLoader @ref="LazyLoader" Load="Load"> <LazyLoader @ref="LazyLoader" Load="Load">
<div class="card"> <div class="card">
<div class="card-header border-0 pt-5"> <div class="card-header border-0 pt-5">
@@ -103,8 +106,6 @@
</div> </div>
</div> </div>
</LazyLoader> </LazyLoader>
</div>
</OnlyAdmin>
@code @code
{ {

View File

@@ -4,13 +4,15 @@
@using Moonlight.App.Repositories.Servers @using Moonlight.App.Repositories.Servers
@using BlazorTable @using BlazorTable
@using Microsoft.EntityFrameworkCore @using Microsoft.EntityFrameworkCore
@using Moonlight.Shared.Components.Navigations
@inject ServerRepository ServerRepository @inject ServerRepository ServerRepository
@inject SmartTranslateService SmartTranslateService @inject SmartTranslateService SmartTranslateService
@attribute [PermissionRequired(nameof(Permissions.AdminServers))] @attribute [PermissionRequired(nameof(Permissions.AdminServers))]
<div class="row"> <AdminServersNavigation Index="0" />
<LazyLoader Load="Load"> <LazyLoader Load="Load">
<div class="card"> <div class="card">
<div class="card-header border-0 pt-5"> <div class="card-header border-0 pt-5">
@@ -65,7 +67,6 @@
</div> </div>
</div> </div>
</LazyLoader> </LazyLoader>
</div>
@code @code
{ {
@@ -76,6 +77,8 @@
Servers = ServerRepository Servers = ServerRepository
.Get() .Get()
.Include(x => x.Owner) .Include(x => x.Owner)
.ToArray() // Execute query and use the moonlight instance to sort
.OrderBy(x => x.Id)
.ToArray(); .ToArray();
return Task.CompletedTask; return Task.CompletedTask;

View File

@@ -6,7 +6,7 @@
@using Moonlight.App.Database.Entities @using Moonlight.App.Database.Entities
@using BlazorTable @using BlazorTable
@using Microsoft.EntityFrameworkCore @using Microsoft.EntityFrameworkCore
@using Moonlight.App.ApiClients.Daemon.Resources @using Moonlight.Shared.Components.Navigations
@using Moonlight.App.ApiClients.Wings @using Moonlight.App.ApiClients.Wings
@using Moonlight.App.Helpers @using Moonlight.App.Helpers
@using Moonlight.App.Models.Misc @using Moonlight.App.Models.Misc
@@ -20,16 +20,29 @@
@attribute [PermissionRequired(nameof(Permissions.AdminServerManager))] @attribute [PermissionRequired(nameof(Permissions.AdminServerManager))]
<div class="card mb-5"> <AdminServersNavigation Index="1"/>
<div class="card-body">
<div class="card">
<div class="card-header">
<span class="card-title">
@if (IsRunning)
{
<span><TL>Status</TL>:&nbsp;<TL>Currently scanning</TL> @(Node?.Name)</span>
}
else
{
<span><TL>Status</TL>:&nbsp;<TL>Scan complete</TL></span>
}
</span>
<div class="card-toolbar">
<WButton Text="@(SmartTranslateService.Translate("Refresh"))" <WButton Text="@(SmartTranslateService.Translate("Refresh"))"
WorkingText="@(SmartTranslateService.Translate("Working"))" WorkingText="@(SmartTranslateService.Translate("Working"))"
CssClasses="btn-primary" CssClasses="btn-primary me-2"
OnClick="() => Task.Run(Scan)"> OnClick="() => Task.Run(Scan)">
</WButton> </WButton>
<WButton Text="@(SmartTranslateService.Translate("Stop all"))" <WButton Text="@(SmartTranslateService.Translate("Stop all"))"
WorkingText="@(SmartTranslateService.Translate("Working"))" WorkingText="@(SmartTranslateService.Translate("Working"))"
CssClasses="btn-danger" CssClasses="btn-danger me-2"
OnClick="StopAll"> OnClick="StopAll">
</WButton> </WButton>
<WButton Text="@(SmartTranslateService.Translate("Kill all"))" <WButton Text="@(SmartTranslateService.Translate("Kill all"))"
@@ -39,19 +52,7 @@
</WButton> </WButton>
</div> </div>
</div> </div>
<div class="card mb-5 bg-secondary"> <div class="card-body">
<div class="card-body d-flex align-items-center">
@if (IsRunning)
{
<h4><TL>Currently scanning</TL>: @(Node?.Name)</h4>
}
else
{
<TL>Scan complete</TL>
}
</div>
</div>
<div class="card card-body">
<div class="table-responsive"> <div class="table-responsive">
<Table TableItem="RunningServer" Items="RunningServers" PageSize="25" TableClass="table table-row-bordered table-row-gray-100 align-middle gs-0 gy-3" TableHeadClass="fw-bold text-muted"> <Table TableItem="RunningServer" Items="RunningServers" PageSize="25" TableClass="table table-row-bordered table-row-gray-100 align-middle gs-0 gy-3" TableHeadClass="fw-bold text-muted">
<Column TableItem="RunningServer" Title="@(SmartTranslateService.Translate("Name"))" Field="@(x => x.Server.Name)" Sortable="true" Filterable="true"> <Column TableItem="RunningServer" Title="@(SmartTranslateService.Translate("Name"))" Field="@(x => x.Server.Name)" Sortable="true" Filterable="true">
@@ -98,6 +99,7 @@
</Table> </Table>
</div> </div>
</div> </div>
</div>
@code @code
{ {