mirror of
https://github.com/chylex/Minecraft-Phantom-Panel.git
synced 2025-06-03 15:34:04 +02:00
Add permissions for existing web pages
This commit is contained in:
parent
0e6d506cb4
commit
1c2c32c2e6
Server
Phantom.Server.Web.Identity/Data
Phantom.Server.Web
@ -9,4 +9,13 @@ public sealed record Permission(string Id, Permission? Parent) {
|
|||||||
AllPermissions.Add(permission);
|
AllPermissions.Add(permission);
|
||||||
return permission;
|
return permission;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public const string ViewInstancesPolicy = "Instances.View";
|
||||||
|
public static readonly Permission ViewInstances = Register(ViewInstancesPolicy);
|
||||||
|
|
||||||
|
public const string CreateInstancesPolicy = "Instances.Create";
|
||||||
|
public static readonly Permission CreateInstances = Register(CreateInstancesPolicy, parent: ViewInstances);
|
||||||
|
|
||||||
|
public const string ViewAuditPolicy = "Audit.View";
|
||||||
|
public static readonly Permission ViewAudit = Register(ViewAuditPolicy);
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
@using Phantom.Server.Services
|
@using Phantom.Server.Services
|
||||||
@inject ServiceConfiguration Configuration
|
@inject ServiceConfiguration Configuration
|
||||||
|
@inject PermissionManager PermissionManager
|
||||||
|
|
||||||
<div class="navbar navbar-dark">
|
<div class="navbar navbar-dark">
|
||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
@ -18,9 +19,18 @@
|
|||||||
<NavMenuItem Label="Login" Icon="account-login" Href="login" />
|
<NavMenuItem Label="Login" Icon="account-login" Href="login" />
|
||||||
</NotAuthorized>
|
</NotAuthorized>
|
||||||
<Authorized>
|
<Authorized>
|
||||||
|
@{ var permissions = PermissionManager.GetPermissions(context.User); }
|
||||||
|
|
||||||
|
@if (permissions.Check(Permission.ViewInstances)) {
|
||||||
<NavMenuItem Label="Instances" Icon="folder" Href="instances" />
|
<NavMenuItem Label="Instances" Icon="folder" Href="instances" />
|
||||||
|
}
|
||||||
|
|
||||||
<NavMenuItem Label="Agents" Icon="cloud" Href="agents" />
|
<NavMenuItem Label="Agents" Icon="cloud" Href="agents" />
|
||||||
|
|
||||||
|
@if (permissions.Check(Permission.ViewAudit)) {
|
||||||
<NavMenuItem Label="Audit Log" Icon="clipboard" Href="audit" />
|
<NavMenuItem Label="Audit Log" Icon="clipboard" Href="audit" />
|
||||||
|
}
|
||||||
|
|
||||||
<NavMenuItem Label="Logout" Icon="account-logout" Href="logout" />
|
<NavMenuItem Label="Logout" Icon="account-logout" Href="logout" />
|
||||||
</Authorized>
|
</Authorized>
|
||||||
</AuthorizeView>
|
</AuthorizeView>
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
@page "/audit"
|
@page "/audit"
|
||||||
|
@attribute [Authorize(Permission.ViewAuditPolicy)]
|
||||||
@using Phantom.Server.Database.Enums
|
@using Phantom.Server.Database.Enums
|
||||||
@using Phantom.Server.Services.Audit
|
@using Phantom.Server.Services.Audit
|
||||||
@using Phantom.Server.Services.Instances
|
@using Phantom.Server.Services.Instances
|
||||||
|
@ -11,6 +11,7 @@
|
|||||||
@using Phantom.Common.Data.Java
|
@using Phantom.Common.Data.Java
|
||||||
@using Phantom.Common.Data
|
@using Phantom.Common.Data
|
||||||
@using Phantom.Common.Data.Instance
|
@using Phantom.Common.Data.Instance
|
||||||
|
@attribute [Authorize(Permission.CreateInstancesPolicy)]
|
||||||
@inject INavigation Nav
|
@inject INavigation Nav
|
||||||
@inject MinecraftVersions MinecraftVersions
|
@inject MinecraftVersions MinecraftVersions
|
||||||
@inject AgentJavaRuntimesManager AgentJavaRuntimesManager
|
@inject AgentJavaRuntimesManager AgentJavaRuntimesManager
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
@page "/instances/{InstanceGuid:guid}"
|
@page "/instances/{InstanceGuid:guid}"
|
||||||
|
@attribute [Authorize(Permission.ViewInstancesPolicy)]
|
||||||
@using Phantom.Common.Data.Instance
|
@using Phantom.Common.Data.Instance
|
||||||
@using Phantom.Common.Data.Replies
|
@using Phantom.Common.Data.Replies
|
||||||
@using Phantom.Server.Services.Audit
|
@using Phantom.Server.Services.Audit
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
@page "/instances"
|
@page "/instances"
|
||||||
|
@attribute [Authorize(Permission.ViewInstancesPolicy)]
|
||||||
@using System.Collections.Immutable
|
@using System.Collections.Immutable
|
||||||
@using Phantom.Server.Services.Agents
|
@using Phantom.Server.Services.Agents
|
||||||
@using Phantom.Server.Services.Instances
|
@using Phantom.Server.Services.Instances
|
||||||
@ -8,7 +9,9 @@
|
|||||||
|
|
||||||
<h1>Instances</h1>
|
<h1>Instances</h1>
|
||||||
|
|
||||||
<a href="instances/create" class="btn btn-primary" role="button">New Instance</a>
|
<PermissionView Permission="Permission.CreateInstances">
|
||||||
|
<a href="instances/create" class="btn btn-primary" role="button">New Instance</a>
|
||||||
|
</PermissionView>
|
||||||
|
|
||||||
<table class="table align-middle">
|
<table class="table align-middle">
|
||||||
<thead>
|
<thead>
|
||||||
|
Loading…
Reference in New Issue
Block a user