Fixed some permissions. Cleaned some UIs
This commit is contained in:
@@ -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"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
|
||||||
}
|
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
@@ -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">
|
||||||
|
|||||||
@@ -99,4 +99,6 @@
|
|||||||
{
|
{
|
||||||
await Event.Off("node.ddos", this);
|
await Event.Off("node.ddos", this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//TODO: Move to security
|
||||||
}
|
}
|
||||||
@@ -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">
|
||||||
|
|||||||
@@ -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;">
|
||||||
|
|||||||
@@ -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
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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>: <TL>Currently scanning</TL> @(Node?.Name)</span>
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
<span><TL>Status</TL>: <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
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user