* Changed views to have them in the same layout
* Added Authorization
This commit is contained in:
87
OrdersManagement/Components/Pages/Register.razor
Normal file
87
OrdersManagement/Components/Pages/Register.razor
Normal file
@@ -0,0 +1,87 @@
|
||||
@page "/register"
|
||||
@using OrdersManagement.Models
|
||||
@using OrdersManagementDataModel.Dtos
|
||||
@using Syncfusion.Blazor.Inputs
|
||||
@using Syncfusion.Blazor.Buttons
|
||||
@using Syncfusion.Blazor.Cards
|
||||
|
||||
@inject UserService UserService
|
||||
@inject NavigationManager NavigationManager
|
||||
|
||||
<div class="h-100 d-flex flex-column">
|
||||
<h5>Rejestracja</h5>
|
||||
<br/>
|
||||
<SfCard>
|
||||
<CardHeader Title="Zarejestruj się"/>
|
||||
<CardContent>
|
||||
<EditForm Model="@RegisterModel" OnValidSubmit="HandleRegister">
|
||||
<DataAnnotationsValidator/>
|
||||
<ValidationSummary/>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="login">Login</label>
|
||||
<SfTextBox ID="login" @bind-Value="RegisterModel.Login" Placeholder="Wprowadź login"
|
||||
CssClass="e-outline"/>
|
||||
<ValidationMessage For="@(() => RegisterModel.Login)"/>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="email">Email</label>
|
||||
<SfTextBox ID="email" @bind-Value="RegisterModel.Email" Placeholder="Wprowadź email"
|
||||
CssClass="e-outline"/>
|
||||
<ValidationMessage For="@(() => RegisterModel.Email)"/>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="firstName">Imię</label>
|
||||
<SfTextBox ID="firstName" @bind-Value="RegisterModel.FirstName" Placeholder="Wprowadź imię"
|
||||
CssClass="e-outline"/>
|
||||
<ValidationMessage For="@(() => RegisterModel.FirstName)"/>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="lastName">Nazwisko</label>
|
||||
<SfTextBox ID="lastName" @bind-Value="RegisterModel.LastName" Placeholder="Wprowadź nazwisko"
|
||||
CssClass="e-outline"/>
|
||||
<ValidationMessage For="@(() => RegisterModel.LastName)"/>
|
||||
</div>
|
||||
|
||||
<div class="form-group mt-3">
|
||||
<SfButton CssClass="e-primary" IsPrimary="true" Type="submit">Zarejestruj</SfButton>
|
||||
</div>
|
||||
</EditForm>
|
||||
</CardContent>
|
||||
</SfCard>
|
||||
</div>
|
||||
|
||||
@code {
|
||||
private RegisterModel RegisterModel { get; set; } = new();
|
||||
|
||||
private async Task HandleRegister()
|
||||
{
|
||||
var temporaryPassword = Guid.NewGuid().ToString().Substring(0, 8);
|
||||
var passwordHash = BCrypt.Net.BCrypt.HashPassword(temporaryPassword);
|
||||
|
||||
var user = new UserDto
|
||||
{
|
||||
Login = RegisterModel.Login,
|
||||
PasswordHash = passwordHash,
|
||||
IsTemporaryPassword = true,
|
||||
IsActive = true,
|
||||
ActiveFrom = DateTime.Now,
|
||||
Email = RegisterModel.Email,
|
||||
FirstName = RegisterModel.FirstName,
|
||||
LastName = RegisterModel.LastName,
|
||||
CreatedDate = DateTime.Now,
|
||||
RowPointer = Guid.NewGuid()
|
||||
};
|
||||
|
||||
var result = await UserService.AddUserAsync(user);
|
||||
|
||||
if (result.IsSuccessStatusCode)
|
||||
{
|
||||
NavigationManager.NavigateTo($"/login?tempPassword={Uri.EscapeDataString(temporaryPassword)}");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user