@using Moonlight.Frontend.Helpers @using Moonlight.Frontend.UI.Admin.Components @using Moonlight.Shared.Http @using Moonlight.Shared.Http.Requests.Admin.Roles @using ShadcnBlazor.Dialogs @using ShadcnBlazor.Extras.Forms @using ShadcnBlazor.Extras.Toasts @using ShadcnBlazor.Fields @using ShadcnBlazor.Inputs @inherits ShadcnBlazor.Extras.Dialogs.DialogBase @inject HttpClient HttpClient @inject ToastService ToastService Create new role Create a new role by giving it a name, a description and the permissions it should grant to its members
Name Description Permissions
Save changes
@code { [Parameter] public Func OnSubmit { get; set; } private CreateRoleDto Request; private List Permissions; protected override void OnInitialized() { Request = new() { Permissions = [] }; Permissions = new(); } private async Task OnSubmitAsync(EditContext editContext, ValidationMessageStore validationMessageStore) { Request.Permissions = Permissions.ToArray(); var response = await HttpClient.PostAsJsonAsync( "api/admin/roles", Request, SerializationContext.Default.Options ); if (!response.IsSuccessStatusCode) { await ProblemDetailsHelper.HandleProblemDetailsAsync(response, Request, validationMessageStore); return false; } await ToastService.SuccessAsync("Role creation", $"Role {Request.Name} has been successfully created"); await OnSubmit.Invoke(); await CloseAsync(); return true; } }