Authority adding
This commit is contained in:
@@ -46,6 +46,16 @@
|
||||
</div>
|
||||
</nav>
|
||||
}
|
||||
@if (UserDataProvider.CurrentRole is Constants.AdminRole)
|
||||
{
|
||||
<nav class="flex-column">
|
||||
<div class="nav-item px-3">
|
||||
<NavLink class="nav-link" href="authorities/add" Match="NavLinkMatch.All">
|
||||
<span class="bi bi-plus-square-fill-nav-menu" aria-hidden="true"></span> Add authority
|
||||
</NavLink>
|
||||
</div>
|
||||
</nav>
|
||||
}
|
||||
</div>
|
||||
|
||||
@code {
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
@page "/authorities/add"
|
||||
@using AutoMapper
|
||||
@using BlazorWebAssemblyVisaApiClient.Validation.Applicants.Models
|
||||
@using VisaApiClient
|
||||
@using BlazorWebAssemblyVisaApiClient.Components
|
||||
@using BlazorWebAssemblyVisaApiClient.Infrastructure.Helpers
|
||||
@using FluentValidation
|
||||
@inherits BlazorWebAssemblyVisaApiClient.Components.Base.VisaClientComponentBase
|
||||
|
||||
<EditForm Model="requestModel" class="with-centered-content">
|
||||
<ObjectGraphDataAnnotationsValidator/>
|
||||
<div >
|
||||
<label>
|
||||
Email:<br/>
|
||||
<InputText class="rounded" @bind-Value="requestModel.AuthData.Email"/>
|
||||
<ValidationMessage For="() => requestModel.AuthData.Email"/>
|
||||
</label><br/>
|
||||
<p/>
|
||||
|
||||
<label>
|
||||
Password:<br/>
|
||||
<InputText class="rounded" @bind-Value="requestModel.AuthData.Password"/>
|
||||
<ValidationMessage For="() => requestModel.AuthData.Password"/>
|
||||
</label><br/>
|
||||
<p/>
|
||||
|
||||
<button class="btn-primary rounded" @onclick="Add">Add</button><br/>
|
||||
<Status @ref="status"/>
|
||||
</div>
|
||||
</EditForm>
|
||||
|
||||
@code
|
||||
{
|
||||
private RegisterRequestModel requestModel = new();
|
||||
private Status status = new();
|
||||
|
||||
[Inject] private IValidator<RegisterRequestModel> RegisterRequestModelValidator { get; set; } = null!;
|
||||
[Inject] private IMapper Mapper { get; set; } = null!;
|
||||
|
||||
private async Task Add()
|
||||
{
|
||||
var validationResult = await RegisterRequestModelValidator.ValidateAsync(requestModel);
|
||||
if (!validationResult.IsValid)
|
||||
{
|
||||
status.SetError(validationResult.ToErrorsString());
|
||||
return;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
status.SetMessage("Wait...");
|
||||
await Client.RegisterAuthorityAsync(Mapper.Map<RegisterRequest>(requestModel));
|
||||
status.SetSuccess("Success");
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
ErrorHandler.Handle(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -18,6 +18,8 @@
|
||||
<NavLink href="@path">
|
||||
<button class="btn-outline-primary">Change</button>
|
||||
</NavLink>
|
||||
|
|
||||
<button class="btn-outline-danger" @onclick="() => Delete(authority)">Delete</button>
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
@@ -25,13 +27,27 @@
|
||||
</table>
|
||||
|
||||
@code {
|
||||
private IEnumerable<UserModel> authorities = [];
|
||||
private List<UserModel> authorities = [];
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
try
|
||||
{
|
||||
authorities = await Client.GetAuthorityAccountsAsync();
|
||||
authorities = (await Client.GetAuthorityAccountsAsync()).ToList();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
ErrorHandler.Handle(e);
|
||||
}
|
||||
}
|
||||
|
||||
private async Task Delete(UserModel authority)
|
||||
{
|
||||
try
|
||||
{
|
||||
await Client.RemoveAuthorityAccountAsync(authority.Id);
|
||||
authorities.Remove(authority);
|
||||
StateHasChanged();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
|
||||
@@ -4,9 +4,9 @@ using VisaApiClient;
|
||||
|
||||
namespace BlazorWebAssemblyVisaApiClient.Validation.Auth;
|
||||
|
||||
public class RegisterRequestValidator : AbstractValidator<RegisterRequestModel>
|
||||
public class RegisterRequestModelValidator : AbstractValidator<RegisterRequestModel>
|
||||
{
|
||||
public RegisterRequestValidator(IValidator<AuthData> authDataValidator)
|
||||
public RegisterRequestModelValidator(IValidator<AuthData> authDataValidator)
|
||||
{
|
||||
RuleFor(r => r.AuthData)
|
||||
.NotEmpty()
|
||||
Reference in New Issue
Block a user