mirror of
https://github.com/chylex/Minecraft-Phantom-Panel.git
synced 2025-10-29 13:24:22 +01:00
.config
.run
.workdir
Agent
Common
Controller
Docker
Utils
Web
Phantom.Web
Layout
Pages
Shared
InstanceAddOrEditForm.razor
InstanceCommandInput.razor
InstanceLog.razor
InstanceLog.razor.css
InstanceLog.razor.js
InstanceStatusText.razor
InstanceStopDialog.razor
UserAddDialog.razor
UserDeleteDialog.razor
UserEditDialogBase.cs
UserRolesDialog.razor
Utils
wwwroot
App.razor
Phantom.Web.csproj
Program.cs
Variables.cs
WebKey.cs
WebLauncher.cs
_Imports.razor
appsettings.json
Phantom.Web.Bootstrap
Phantom.Web.Components
Phantom.Web.Services
.dockerignore
.gitattributes
.gitignore
AddMigration.bat
AddMigration.sh
Directory.Build.props
Directory.Build.targets
Dockerfile
LICENSE
Packages.props
PhantomPanel.sln
README.md
global.json
79 lines
2.3 KiB
Plaintext
79 lines
2.3 KiB
Plaintext
@using Phantom.Common.Data.Web.Users
|
|
@using Phantom.Common.Data.Web.Users.CreateUserResults
|
|
@using Phantom.Web.Services.Users
|
|
@using System.ComponentModel.DataAnnotations
|
|
@inherits Phantom.Web.Components.PhantomComponent
|
|
@inject IJSRuntime Js;
|
|
@inject UserManager UserManager;
|
|
|
|
<Form Model="form" OnSubmit="AddUser">
|
|
<Modal Id="@ModalId" TitleText="Add User">
|
|
<Body>
|
|
|
|
<div class="row">
|
|
<div class="mb-3">
|
|
<FormTextInput Id="account-username" Label="Username" @bind-Value="form.Username" autocomplete="off" />
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row">
|
|
<div class="mb-3">
|
|
<FormTextInput Id="account-password" Label="Password" Type="FormTextInputType.Password" autocomplete="new-password" @bind-Value="form.Password" />
|
|
</div>
|
|
</div>
|
|
|
|
</Body>
|
|
<Footer>
|
|
<FormSubmitError />
|
|
<FormButtonSubmit Label="Add User" class="btn btn-primary" />
|
|
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cancel</button>
|
|
</Footer>
|
|
</Modal>
|
|
</Form>
|
|
|
|
@code {
|
|
|
|
[Parameter, EditorRequired]
|
|
public string ModalId { get; set; } = string.Empty;
|
|
|
|
[Parameter]
|
|
public EventCallback<UserInfo> UserAdded { get; set; }
|
|
|
|
private readonly AddUserFormModel form = new();
|
|
|
|
private sealed class AddUserFormModel : FormModel {
|
|
[Required]
|
|
public string Username { get; set; } = string.Empty;
|
|
|
|
[Required]
|
|
public string Password { get; set; } = string.Empty;
|
|
}
|
|
|
|
private async Task AddUser(EditContext context) {
|
|
await form.SubmitModel.StartSubmitting();
|
|
|
|
var loggedInUserGuid = await GetUserGuid();
|
|
if (loggedInUserGuid == null || !await CheckPermission(Permission.EditUsers)) {
|
|
form.SubmitModel.StopSubmitting("You do not have permission to add users.");
|
|
return;
|
|
}
|
|
|
|
switch (await UserManager.Create(loggedInUserGuid.Value, form.Username, form.Password, CancellationToken)) {
|
|
case Success success:
|
|
await UserAdded.InvokeAsync(success.User);
|
|
await Js.InvokeVoidAsync("closeModal", ModalId);
|
|
form.SubmitModel.StopSubmitting();
|
|
break;
|
|
|
|
case CreationFailed fail:
|
|
form.SubmitModel.StopSubmitting(fail.Error.ToSentences("\n"));
|
|
break;
|
|
|
|
default:
|
|
form.SubmitModel.StopSubmitting("Unknown error.");
|
|
break;
|
|
}
|
|
}
|
|
|
|
}
|