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"
};
public static Permission AdminServerImageIndex = new()
public static Permission AdminServerImages = new()
{
Index = 21,
Name = "Admin Server Image",
Name = "Admin Server Images",
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>
</a>
</div>
<div data-kt-menu-trigger="click" class="menu-item menu-accordion">
<span class="menu-link">
<div class="menu-item">
<a class="menu-link" href="/admin/servers">
<span class="menu-icon">
<i class="bx bx-server"></i>
</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>
</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">
<a class="menu-link" href="/admin/webspaces">
<span class="menu-icon">

View File

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

View File

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

View File

@@ -1,6 +1,7 @@
@page "/admin/servers/cleanup"
@using Moonlight.App.Events
@using Moonlight.App.Services.Background
@using Moonlight.Shared.Components.Navigations
@inject CleanupService CleanupService
@inject EventSystem Event
@@ -9,6 +10,8 @@
@attribute [PermissionRequired(nameof(Permissions.AdminServerCleanup))]
<AdminServersNavigation Index="2" />
<div class="row g-5 g-xl-10 mb-5 mb-xl-10">
<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;">

View File

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

View File

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

View File

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

View File

@@ -6,7 +6,7 @@
@using Moonlight.App.Database.Entities
@using BlazorTable
@using Microsoft.EntityFrameworkCore
@using Moonlight.App.ApiClients.Daemon.Resources
@using Moonlight.Shared.Components.Navigations
@using Moonlight.App.ApiClients.Wings
@using Moonlight.App.Helpers
@using Moonlight.App.Models.Misc
@@ -20,16 +20,29 @@
@attribute [PermissionRequired(nameof(Permissions.AdminServerManager))]
<div class="card mb-5">
<div class="card-body">
<AdminServersNavigation Index="1"/>
<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"))"
WorkingText="@(SmartTranslateService.Translate("Working"))"
CssClasses="btn-primary"
CssClasses="btn-primary me-2"
OnClick="() => Task.Run(Scan)">
</WButton>
<WButton Text="@(SmartTranslateService.Translate("Stop all"))"
WorkingText="@(SmartTranslateService.Translate("Working"))"
CssClasses="btn-danger"
CssClasses="btn-danger me-2"
OnClick="StopAll">
</WButton>
<WButton Text="@(SmartTranslateService.Translate("Kill all"))"
@@ -39,19 +52,7 @@
</WButton>
</div>
</div>
<div class="card mb-5 bg-secondary">
<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="card-body">
<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">
<Column TableItem="RunningServer" Title="@(SmartTranslateService.Translate("Name"))" Field="@(x => x.Server.Name)" Sortable="true" Filterable="true">
@@ -98,6 +99,7 @@
</Table>
</div>
</div>
</div>
@code
{