Aggiunta login

This commit is contained in:
2025-05-09 14:43:46 +02:00
parent ea52494dfb
commit eb1dc8daa2
22 changed files with 440 additions and 534 deletions

View File

@@ -1,4 +1,5 @@
@page "/Calendar"
@attribute [Authorize]
@using Template.Shared.Components.Layout
<HeaderLayout Title="Agenda" />

View File

@@ -1,4 +1,5 @@
@page "/"
@attribute [Authorize]
@code
{

View File

@@ -0,0 +1,101 @@
@page "/login"
@using Template.Shared.Components.Layout.Spinner
@using Template.Shared.Core.Services
@inject IUserAccountService UserAccountService
@inject AppAuthenticationStateProvider AuthenticationStateProvider
@if (Spinner)
{
<SpinnerLayout/>
}
else
{
<div class="center-box container d-flex justify-content-center align-items-center min-vh-100">
<div class="row border rounded-4 bg-white shadow box-area">
<div class="appName rounded-4 d-flex justify-content-center align-items-center flex-column">
<span>Nome App</span>
</div>
<div class="col-md-6 right-box">
<div class="row align-items-center">
<div class="input-group mb-2">
<MudTextField @bind-Value="UserData.Username" Label="Username" Variant="Variant.Text"/>
</div>
<div class="input-group mb-2">
<MudTextField @bind-Value="UserData.Password" Label="Password" Variant="Variant.Text"/>
</div>
<div class="input-group mb-4">
<MudTextField @bind-Value="UserData.CodHash" Label="Profilo azienda" Variant="Variant.Text"/>
</div>
<div class="input-group">
<div class="button-login" @onclick="SignInUser">
<span>Login</span>
</div>
</div>
</div>
<div class="my-4 login-footer">
<span>Powered by</span>
<img src="_content/Template.Shared/images/logoIntegry.svg" class="img-fluid" alt="Integry">
</div>
@if (_attemptFailed)
{
<MudAlert Class="my-3" Dense="true" Severity="Severity.Error" Variant="Variant.Filled">@ErrorMessage</MudAlert>
}
</div>
</div>
</div>
}
@code {
private SignIn UserData { get; } = new();
private bool Spinner { get; set; }
private string ErrorMessage { get; set; } = "";
private bool _attemptFailed;
protected override void OnInitialized()
{
UserData.CodHash = LocalStorage.GetString("codHash");
StateHasChanged();
}
private async Task SignInUser()
{
_attemptFailed = false;
if (!string.IsNullOrEmpty(UserData.Username) && !string.IsNullOrEmpty(UserData.Password) && !string.IsNullOrEmpty(UserData.CodHash))
{
Spinner = true;
StateHasChanged();
try
{
await UserAccountService.Login(UserData.Username, UserData.Password, UserData.CodHash);
AuthenticationStateProvider.NotifyAuthenticationState(); //Chiamato per forzare il refresh
LocalStorage.SetString("codHash", UserData.CodHash);
NavigationManager.NavigateTo("/");
StateHasChanged();
}
catch (Exception e)
{
Spinner = false;
StateHasChanged();
ErrorMessage = e.Message;
_attemptFailed = true;
Console.WriteLine(e);
// Logger<>.LogError(e, e.Message);
}
}
}
public class SignIn
{
public string? Username { get; set; }
public string? Password { get; set; }
public string? CodHash { get; set; }
}
}

View File

@@ -0,0 +1,61 @@
.center-box {
margin-top: -1.1rem !important; /* remove page padding */
}
.box-area {
width: 930px;
}
.right-box {
padding: 15px 30px 0 30px;
}
::placeholder {
font-size: 16px;
}
.rounded-4 {
border-radius: 20px;
}
.rounded-5 {
border-radius: 30px;
}
.bg-white {
background: var(--mud-palette-surface) !important;
}
.appName {
margin-top: 15px;
font-size: large;
font-weight: 900;
color: var(--mud-palette-primary)
}
.button-login {
text-align: center;
border: 2px solid var(--mud-palette-primary);
background-color: var(--mud-palette-primary);
border-radius: 25px;
padding: .3rem 2rem;
width: 100%;
font-weight: 700;
color: var(--mud-palette-appbar-text);
}
.login-footer {
display: flex;
align-items: center;
justify-content: flex-end;
}
.login-footer span {
font-size: 9px;
color: var(--mud-palette-gray-darker);
}
.login-footer img {
height: 15px;
margin-left: 4px;
}

View File

@@ -1,4 +1,5 @@
@page "/PersonalInfo"
@attribute [Authorize]
@using Template.Shared.Components.Layout
<HeaderLayout Title="Profilo" />

View File

@@ -1,4 +1,5 @@
@page "/Users"
@attribute [Authorize]
@using Template.Shared.Components.Layout
<HeaderLayout Title="Contatti" />