Adding permissions. I hate my life ;)
This commit is contained in:
parent
178ff36e86
commit
74d4ee729d
|
@ -9,6 +9,104 @@ public static class Permissions
|
||||||
Description = "See basic information about growth and status of the moonlight instance"
|
Description = "See basic information about growth and status of the moonlight instance"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
public static Permission SystemDashboard = new()
|
||||||
|
{
|
||||||
|
Index = 1,
|
||||||
|
Name = "System information",
|
||||||
|
Description = "See information about the moonlight instance like the uptime and memory usage"
|
||||||
|
};
|
||||||
|
|
||||||
|
public static Permission SystemSentry = new()
|
||||||
|
{
|
||||||
|
Index = 2,
|
||||||
|
Name = "Settings for Sentry",
|
||||||
|
Description = "See information about the sentry status"
|
||||||
|
};
|
||||||
|
|
||||||
|
public static Permission SystemMalware = new()
|
||||||
|
{
|
||||||
|
Index = 3,
|
||||||
|
Name = "Server malware scanner",
|
||||||
|
Description = "Scan running servers for malware"
|
||||||
|
};
|
||||||
|
|
||||||
|
public static Permission SystemSecurity = new()
|
||||||
|
{
|
||||||
|
Index = 4,
|
||||||
|
Name = "System security settings",
|
||||||
|
Description = "Ban ip addresses and view the security logs"
|
||||||
|
};
|
||||||
|
|
||||||
|
public static Permission SystemResources = new()
|
||||||
|
{
|
||||||
|
Index = 5,
|
||||||
|
Name = "Resources",
|
||||||
|
Description = "Read and write moonlight resources like configuration files"
|
||||||
|
};
|
||||||
|
|
||||||
|
public static Permission DiscordBot = new()
|
||||||
|
{
|
||||||
|
Index = 6,
|
||||||
|
Name = "Discord bot actions",
|
||||||
|
Description = "Setup and remote control the discord bot if enabled"
|
||||||
|
};
|
||||||
|
|
||||||
|
public static Permission NewsMessages = new()
|
||||||
|
{
|
||||||
|
Index = 7,
|
||||||
|
Name = "News messages",
|
||||||
|
Description = "Edit, view and delete messages for the user dashboard"
|
||||||
|
};
|
||||||
|
|
||||||
|
public static Permission SystemConfiguration = new()
|
||||||
|
{
|
||||||
|
Index = 8,
|
||||||
|
Name = "System configuration",
|
||||||
|
Description = "Modify the moonlight configuration though the visual editor"
|
||||||
|
};
|
||||||
|
|
||||||
|
public static Permission SystemMail = new()
|
||||||
|
{
|
||||||
|
Index = 9,
|
||||||
|
Name = "System mail settings",
|
||||||
|
Description = "Modify the mail templates and send test mails"
|
||||||
|
};
|
||||||
|
|
||||||
|
public static Permission ServersOverview = new()
|
||||||
|
{
|
||||||
|
Index = 10,
|
||||||
|
Name = "Servers overview",
|
||||||
|
Description = "View all servers and their owners"
|
||||||
|
};
|
||||||
|
|
||||||
|
public static Permission ServerAdminEdit = new()
|
||||||
|
{
|
||||||
|
Index = 11,
|
||||||
|
Name = "Edit servers",
|
||||||
|
Description = "View all servers and their owners"
|
||||||
|
};
|
||||||
|
|
||||||
|
public static Permission ServerManager = new()
|
||||||
|
{
|
||||||
|
Index = 12,
|
||||||
|
Name = "Server manager",
|
||||||
|
Description = "View all servers are currently running and stop/kill all running servers"
|
||||||
|
};
|
||||||
|
|
||||||
|
public static Permission ServerCleanup = new()
|
||||||
|
{
|
||||||
|
Index = 13,
|
||||||
|
Name = "Server cleanup",
|
||||||
|
Description = "View the stats about the cleanup system"
|
||||||
|
};
|
||||||
|
|
||||||
|
public static Permission Nodes = new()
|
||||||
|
{
|
||||||
|
Index = 14,
|
||||||
|
Name = "Nodes",
|
||||||
|
Description = "View stats about the nodes"
|
||||||
|
};
|
||||||
|
|
||||||
public static Permission? FromString(string name)
|
public static Permission? FromString(string name)
|
||||||
{
|
{
|
||||||
var type = typeof(Permissions);
|
var type = typeof(Permissions);
|
||||||
|
|
|
@ -77,6 +77,7 @@
|
||||||
<_ContentIncludedByDefault Remove="Shared\Views\Admin\Servers\Cleanup\Exceptions\Edit.razor" />
|
<_ContentIncludedByDefault Remove="Shared\Views\Admin\Servers\Cleanup\Exceptions\Edit.razor" />
|
||||||
<_ContentIncludedByDefault Remove="Shared\Components\News\NewsEditor.razor" />
|
<_ContentIncludedByDefault Remove="Shared\Components\News\NewsEditor.razor" />
|
||||||
<_ContentIncludedByDefault Remove="Shared\News\Edit.razor" />
|
<_ContentIncludedByDefault Remove="Shared\News\Edit.razor" />
|
||||||
|
<_ContentIncludedByDefault Remove="Shared\Views\Admin\AaPanels\Index.razor" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
@page "/admin/aapanels"
|
|
||||||
|
|
|
@ -17,7 +17,6 @@
|
||||||
|
|
||||||
@attribute [PermissionRequired(nameof(Permissions.AdminDashboard))]
|
@attribute [PermissionRequired(nameof(Permissions.AdminDashboard))]
|
||||||
|
|
||||||
<OnlyAdmin>
|
|
||||||
<LazyLoader Load="Load">
|
<LazyLoader Load="Load">
|
||||||
<div class="row mb-5">
|
<div class="row mb-5">
|
||||||
<div class="col-12 col-lg-6 col-xl">
|
<div class="col-12 col-lg-6 col-xl">
|
||||||
|
@ -128,7 +127,6 @@
|
||||||
}
|
}
|
||||||
</LazyLoader>
|
</LazyLoader>
|
||||||
</LazyLoader>
|
</LazyLoader>
|
||||||
</OnlyAdmin>
|
|
||||||
|
|
||||||
@code
|
@code
|
||||||
{
|
{
|
||||||
|
|
|
@ -8,13 +8,16 @@
|
||||||
@inject ServerRepository ServerRepository
|
@inject ServerRepository ServerRepository
|
||||||
@inject SmartTranslateService SmartTranslateService
|
@inject SmartTranslateService SmartTranslateService
|
||||||
|
|
||||||
<OnlyAdmin>
|
@attribute [PermissionRequired(nameof(Permissions.ServersOverview))]
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<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">
|
||||||
<h3 class="card-title align-items-start flex-column">
|
<h3 class="card-title align-items-start flex-column">
|
||||||
<span class="card-label fw-bold fs-3 mb-1"><TL>Servers</TL></span>
|
<span class="card-label fw-bold fs-3 mb-1">
|
||||||
|
<TL>Servers</TL>
|
||||||
|
</span>
|
||||||
</h3>
|
</h3>
|
||||||
<div class="card-toolbar">
|
<div class="card-toolbar">
|
||||||
<a href="/admin/servers/new" class="btn btn-sm btn-light-success">
|
<a href="/admin/servers/new" class="btn btn-sm btn-light-success">
|
||||||
|
@ -63,7 +66,6 @@
|
||||||
</div>
|
</div>
|
||||||
</LazyLoader>
|
</LazyLoader>
|
||||||
</div>
|
</div>
|
||||||
</OnlyAdmin>
|
|
||||||
|
|
||||||
@code
|
@code
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,106 +0,0 @@
|
||||||
@page "/admin/system/auditlog"
|
|
||||||
|
|
||||||
@using Moonlight.Shared.Components.Navigations
|
|
||||||
@using Moonlight.App.Repositories.LogEntries
|
|
||||||
@using Moonlight.App.Services
|
|
||||||
@using Moonlight.App.Database.Entities.LogsEntries
|
|
||||||
@using BlazorTable
|
|
||||||
@using Moonlight.App.Helpers
|
|
||||||
@using Moonlight.App.Models.Misc
|
|
||||||
@using Moonlight.Shared.Components.AuditLogEntrys
|
|
||||||
|
|
||||||
@inject AuditLogEntryRepository AuditLogEntryRepository
|
|
||||||
|
|
||||||
<OnlyAdmin>
|
|
||||||
<AdminSystemNavigation Index="2"/>
|
|
||||||
|
|
||||||
<div class="card">
|
|
||||||
<div class="card-header card-header-stretch">
|
|
||||||
<div class="card-title d-flex align-items-center">
|
|
||||||
<span class="me-3 lh-0">
|
|
||||||
<i class="bx bx-md bx-calendar"></i>
|
|
||||||
</span>
|
|
||||||
<h3 class="fw-bold m-0 text-gray-800">@(Formatter.FormatDateOnly(DateTime))</h3>
|
|
||||||
</div>
|
|
||||||
<div class="card-toolbar m-0">
|
|
||||||
<ul class="nav nav-tabs nav-line-tabs nav-stretch fs-6 border-0 fw-bold">
|
|
||||||
<li class="nav-item">
|
|
||||||
<button @onclick="Left" class="nav-link justify-content-center text-active-gray-800">
|
|
||||||
<i class="bx bx-md bx-left-arrow"></i>
|
|
||||||
</button>
|
|
||||||
</li>
|
|
||||||
<li class="nav-item">
|
|
||||||
<button @onclick="Right" class="nav-link justify-content-center text-active-gray-800">
|
|
||||||
<i class="bx bx-md bx-right-arrow"></i>
|
|
||||||
</button>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="card-body">
|
|
||||||
<LazyLoader @ref="LazyLoader" Load="Load">
|
|
||||||
@if (AuditLogEntries.Any())
|
|
||||||
{
|
|
||||||
<div class="timeline">
|
|
||||||
@foreach (var entry in AuditLogEntries)
|
|
||||||
{
|
|
||||||
switch (entry.Type)
|
|
||||||
{
|
|
||||||
case AuditLogType.Login:
|
|
||||||
<AuditLogEntryLogin Entry="entry"/>
|
|
||||||
break;
|
|
||||||
case AuditLogType.Register:
|
|
||||||
<AuditLogEntryRegister Entry="entry"/>
|
|
||||||
break;
|
|
||||||
case AuditLogType.ChangePassword:
|
|
||||||
<AuditLogEntryChangePassword Entry="entry"/>
|
|
||||||
break;
|
|
||||||
case AuditLogType.ChangePowerState:
|
|
||||||
<AuditLogEntryChangePowerState Entry="entry"/>
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</div>
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
<div class="alert alert-primary">
|
|
||||||
<TL>No records found for this day</TL>
|
|
||||||
</div>
|
|
||||||
}
|
|
||||||
</LazyLoader>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</OnlyAdmin>
|
|
||||||
|
|
||||||
@code
|
|
||||||
{
|
|
||||||
private AuditLogEntry[] AuditLogEntries;
|
|
||||||
private LazyLoader LazyLoader;
|
|
||||||
private DateTime DateTime = DateTime.Today;
|
|
||||||
|
|
||||||
private Task Load(LazyLoader arg)
|
|
||||||
{
|
|
||||||
AuditLogEntries = AuditLogEntryRepository
|
|
||||||
.Get()
|
|
||||||
.Where(x => x.CreatedAt.Date == DateTime.Date)
|
|
||||||
.OrderByDescending(x => x.Id)
|
|
||||||
.ToArray();
|
|
||||||
|
|
||||||
return Task.CompletedTask;
|
|
||||||
}
|
|
||||||
|
|
||||||
private async Task Left()
|
|
||||||
{
|
|
||||||
DateTime = DateTime.AddDays(1);
|
|
||||||
|
|
||||||
await LazyLoader.Reload();
|
|
||||||
}
|
|
||||||
|
|
||||||
private async Task Right()
|
|
||||||
{
|
|
||||||
DateTime = DateTime.AddDays(-1);
|
|
||||||
|
|
||||||
await LazyLoader.Reload();
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -9,7 +9,8 @@
|
||||||
@inject ToastService ToastService
|
@inject ToastService ToastService
|
||||||
@inject SmartTranslateService SmartTranslateService
|
@inject SmartTranslateService SmartTranslateService
|
||||||
|
|
||||||
<OnlyAdmin>
|
@attribute [PermissionRequired(nameof(Permissions.SystemConfiguration))]
|
||||||
|
|
||||||
<AdminSystemNavigation Index="8"/>
|
<AdminSystemNavigation Index="8"/>
|
||||||
|
|
||||||
<LazyLoader Load="Load">
|
<LazyLoader Load="Load">
|
||||||
|
@ -28,7 +29,6 @@
|
||||||
</SmartForm>
|
</SmartForm>
|
||||||
</div>
|
</div>
|
||||||
</LazyLoader>
|
</LazyLoader>
|
||||||
</OnlyAdmin>
|
|
||||||
|
|
||||||
@code
|
@code
|
||||||
{
|
{
|
||||||
|
|
|
@ -4,7 +4,8 @@
|
||||||
|
|
||||||
@inject DiscordBotService DiscordBotService
|
@inject DiscordBotService DiscordBotService
|
||||||
|
|
||||||
<OnlyAdmin>
|
@attribute [PermissionRequired(nameof(Permissions.DiscordBot))]
|
||||||
|
|
||||||
<AdminSystemNavigation Index="6"/>
|
<AdminSystemNavigation Index="6"/>
|
||||||
|
|
||||||
<div class="mt-3 card card-body">
|
<div class="mt-3 card card-body">
|
||||||
|
@ -20,7 +21,6 @@
|
||||||
OnClick="VoidCommands">
|
OnClick="VoidCommands">
|
||||||
</WButton>
|
</WButton>
|
||||||
</div>
|
</div>
|
||||||
</OnlyAdmin>
|
|
||||||
|
|
||||||
@code
|
@code
|
||||||
{
|
{
|
||||||
|
|
|
@ -7,7 +7,8 @@
|
||||||
@inject HostSystemHelper HostSystemHelper
|
@inject HostSystemHelper HostSystemHelper
|
||||||
@inject MoonlightService MoonlightService
|
@inject MoonlightService MoonlightService
|
||||||
|
|
||||||
<OnlyAdmin>
|
@attribute [PermissionRequired(nameof(Permissions.SystemDashboard))]
|
||||||
|
|
||||||
<AdminSystemNavigation Index="0"/>
|
<AdminSystemNavigation Index="0"/>
|
||||||
|
|
||||||
<LazyLoader Load="Load">
|
<LazyLoader Load="Load">
|
||||||
|
@ -92,7 +93,6 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</LazyLoader>
|
</LazyLoader>
|
||||||
</OnlyAdmin>
|
|
||||||
|
|
||||||
@code
|
@code
|
||||||
{
|
{
|
||||||
|
|
|
@ -16,7 +16,8 @@
|
||||||
@inject AlertService AlertService
|
@inject AlertService AlertService
|
||||||
@inject MailService MailService
|
@inject MailService MailService
|
||||||
|
|
||||||
<OnlyAdmin>
|
@attribute [PermissionRequired(nameof(Permissions.SystemMail))]
|
||||||
|
|
||||||
<AdminSystemNavigation Index="9"/>
|
<AdminSystemNavigation Index="9"/>
|
||||||
|
|
||||||
<div class="card mb-3">
|
<div class="card mb-3">
|
||||||
|
@ -88,7 +89,6 @@
|
||||||
OnSubmit="OnSubmitTemplateEdit"/>
|
OnSubmit="OnSubmitTemplateEdit"/>
|
||||||
}
|
}
|
||||||
</LazyLoader>
|
</LazyLoader>
|
||||||
</OnlyAdmin>
|
|
||||||
|
|
||||||
@code
|
@code
|
||||||
{
|
{
|
||||||
|
|
|
@ -14,7 +14,8 @@
|
||||||
|
|
||||||
@implements IDisposable
|
@implements IDisposable
|
||||||
|
|
||||||
<OnlyAdmin>
|
@attribute [PermissionRequired(nameof(Permissions.SystemMalware))]
|
||||||
|
|
||||||
<AdminSystemNavigation Index="2"/>
|
<AdminSystemNavigation Index="2"/>
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
@ -96,7 +97,6 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</OnlyAdmin>
|
|
||||||
|
|
||||||
@code
|
@code
|
||||||
{
|
{
|
||||||
|
|
|
@ -10,7 +10,8 @@
|
||||||
@inject NavigationManager NavigationManager
|
@inject NavigationManager NavigationManager
|
||||||
@inject NewsEntryRepository NewsEntryRepository
|
@inject NewsEntryRepository NewsEntryRepository
|
||||||
|
|
||||||
<OnlyAdmin>
|
@attribute [PermissionRequired(nameof(Permissions.NewsMessages))]
|
||||||
|
|
||||||
<LazyLoader Load="Load">
|
<LazyLoader Load="Load">
|
||||||
@if (Entry == null)
|
@if (Entry == null)
|
||||||
{
|
{
|
||||||
|
@ -49,7 +50,6 @@
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
</LazyLoader>
|
</LazyLoader>
|
||||||
</OnlyAdmin>
|
|
||||||
|
|
||||||
@code
|
@code
|
||||||
{
|
{
|
||||||
|
|
|
@ -12,7 +12,8 @@
|
||||||
@inject SmartTranslateService SmartTranslateService
|
@inject SmartTranslateService SmartTranslateService
|
||||||
@inject AlertService AlertService
|
@inject AlertService AlertService
|
||||||
|
|
||||||
<OnlyAdmin>
|
@attribute [PermissionRequired(nameof(Permissions.NewsMessages))]
|
||||||
|
|
||||||
<AdminSystemNavigation Index="7"/>
|
<AdminSystemNavigation Index="7"/>
|
||||||
|
|
||||||
<div class="card card-body mb-6">
|
<div class="card card-body mb-6">
|
||||||
|
@ -55,7 +56,6 @@
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
</LazyLoader>
|
</LazyLoader>
|
||||||
</OnlyAdmin>
|
|
||||||
|
|
||||||
@code
|
@code
|
||||||
{
|
{
|
||||||
|
|
|
@ -9,7 +9,8 @@
|
||||||
@inject NavigationManager NavigationManager
|
@inject NavigationManager NavigationManager
|
||||||
@inject NewsEntryRepository NewsEntryRepository
|
@inject NewsEntryRepository NewsEntryRepository
|
||||||
|
|
||||||
<OnlyAdmin>
|
@attribute [PermissionRequired(nameof(Permissions.NewsMessages))]
|
||||||
|
|
||||||
<div class="card mb-6">
|
<div class="card mb-6">
|
||||||
<div class="card-header">
|
<div class="card-header">
|
||||||
<h3 class="card-title w-75">
|
<h3 class="card-title w-75">
|
||||||
|
@ -30,7 +31,6 @@
|
||||||
</WButton>
|
</WButton>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</OnlyAdmin>
|
|
||||||
|
|
||||||
@code
|
@code
|
||||||
{
|
{
|
||||||
|
|
|
@ -11,7 +11,8 @@
|
||||||
@inject ConfigService ConfigService
|
@inject ConfigService ConfigService
|
||||||
@inject AlertService AlertService
|
@inject AlertService AlertService
|
||||||
|
|
||||||
<OnlyAdmin>
|
@attribute [PermissionRequired(nameof(Permissions.SystemResources))]
|
||||||
|
|
||||||
<AdminSystemNavigation Index="5"/>
|
<AdminSystemNavigation Index="5"/>
|
||||||
|
|
||||||
<div class="card card-body mb-6">
|
<div class="card card-body mb-6">
|
||||||
|
@ -28,7 +29,6 @@
|
||||||
<FileManager Access="@(new HostFileAccess(PathBuilder.Dir("storage")))">
|
<FileManager Access="@(new HostFileAccess(PathBuilder.Dir("storage")))">
|
||||||
</FileManager>
|
</FileManager>
|
||||||
</div>
|
</div>
|
||||||
</OnlyAdmin>
|
|
||||||
|
|
||||||
@code
|
@code
|
||||||
{
|
{
|
||||||
|
|
|
@ -13,7 +13,8 @@
|
||||||
@inject EventSystem Event
|
@inject EventSystem Event
|
||||||
@inject ToastService ToastService
|
@inject ToastService ToastService
|
||||||
|
|
||||||
<OnlyAdmin>
|
@attribute [PermissionRequired(nameof(Permissions.SystemSecurity))]
|
||||||
|
|
||||||
<AdminSystemNavigation Index="3"/>
|
<AdminSystemNavigation Index="3"/>
|
||||||
|
|
||||||
<div class="card mb-5">
|
<div class="card mb-5">
|
||||||
|
@ -54,7 +55,6 @@
|
||||||
</LazyLoader>
|
</LazyLoader>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</OnlyAdmin>
|
|
||||||
|
|
||||||
@code
|
@code
|
||||||
{
|
{
|
||||||
|
|
|
@ -3,7 +3,8 @@
|
||||||
@using Moonlight.Shared.Components.Navigations
|
@using Moonlight.Shared.Components.Navigations
|
||||||
@using global::Sentry
|
@using global::Sentry
|
||||||
|
|
||||||
<OnlyAdmin>
|
@attribute [PermissionRequired(nameof(Permissions.SystemSentry))]
|
||||||
|
|
||||||
<AdminSystemNavigation Index="1"/>
|
<AdminSystemNavigation Index="1"/>
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
@ -29,7 +30,6 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</OnlyAdmin>
|
|
||||||
|
|
||||||
@code
|
@code
|
||||||
{
|
{
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
@using Microsoft.AspNetCore.Components.Web.Virtualization
|
@using Microsoft.AspNetCore.Components.Web.Virtualization
|
||||||
@using Microsoft.JSInterop
|
@using Microsoft.JSInterop
|
||||||
@using Moonlight
|
@using Moonlight
|
||||||
|
@using Moonlight.App.Perms
|
||||||
@using Moonlight.Shared.Components
|
@using Moonlight.Shared.Components
|
||||||
@using Moonlight.Shared.Components.StateLogic
|
@using Moonlight.Shared.Components.StateLogic
|
||||||
@using Moonlight.Shared.Components.Alerts
|
@using Moonlight.Shared.Components.Alerts
|
||||||
|
|
Loading…
Reference in a new issue