1
0
mirror of synced 2025-02-20 20:51:01 +01:00

Login/Register clean up

This commit is contained in:
shiibe 2024-03-09 13:45:20 -05:00
parent e0b3e3783e
commit d034a2218d
5 changed files with 53 additions and 43 deletions

View File

@ -19,9 +19,10 @@
{
<MudSkeleton Width="35%" Height="32px" />
}
@if (user?.IsAdmin == true)
{
<MudChip Color="Color.Secondary" Size="Size.Small">@Localizer["Admin"]</MudChip>
<MudChip Variant="Variant.Outlined" Color="Color.Info" Size="Size.Small" Icon="@Icons.Material.TwoTone.AdminPanelSettings">@Localizer["Admin"]</MudChip>
}
</div>
<MudText Typo="Typo.caption">User ID: @user?.Baid</MudText>

View File

@ -5,41 +5,36 @@
@page "/Login"
<MudGrid Class="my-8">
@if (!LoginService.IsLoggedIn) // Not logged in, show login form
{
<MudContainer>
<MudGrid Justify="Justify.Center">
<MudItem xs="12" md="6" lg="4" class="mt-8">
<MudCard Elevation="0" Outlined="true">
<MudCardContent>
<MudForm @ref="loginForm">
<MudText Typo="Typo.h5" Class="mb-4">Login</MudText>
<div style="display:flex;flex-direction:column;gap:15px;">
<MudTextField @bind-value="inputAccessCode" InputType="InputType.Text" T="string"
FullWidth="true" Required="@true" RequiredError="Access code is required"
Label="Access code" Variant="Variant.Outlined" Margin="Margin.Dense" />
<MudTextField @bind-Value="inputPassword" InputType="InputType.Password"
T="string" FullWidth="true" Required="@true"
RequiredError="Password is required"
Label="Password" Variant="Variant.Outlined" Margin="Margin.Dense" />
<MudStack Row="true" Class="mt-2">
<MudButton OnClick="OnLogin" FullWidth="true" StartIcon="@Icons.Material.Filled.Login" Color="Color.Primary" Variant="Variant.Filled">Login</MudButton>
@if (!LoginService.OnlyAdmin)
{
<MudButton Href="@("/Register")" FullWidth="true" StartIcon="@Icons.Material.Filled.AddCard" Color="Color.Primary" Variant="Variant.Filled">Register</MudButton>
}
</MudStack>
</div>
</MudForm>
</MudCardContent>
</MudCard>
</MudItem>
</MudGrid>
</MudContainer>
} else
{
// Already logged in
NavigationManager.NavigateTo("/");
}
</MudGrid>
@if (!LoginService.IsLoggedIn) // Not logged in, show login form
{
<MudContainer>
<MudGrid Justify="Justify.Center">
<MudItem xs="12" md="6" lg="4">
<MudCard Elevation="0" Outlined="true">
<MudCardHeader>
<MudText Typo="Typo.h5">@Localizer["Log In"]</MudText>
</MudCardHeader>
<MudCardContent>
<MudForm @ref="loginForm">
<div style="display:flex;flex-direction:column;gap:15px;">
<MudTextField @bind-value="inputAccessCode" InputType="InputType.Text" T="string"
FullWidth="true" Required="@true" RequiredError="Access code is required"
Label="Access code" Variant="Variant.Outlined" Margin="Margin.Dense" />
<MudTextField @bind-Value="inputPassword" InputType="InputType.Password"
T="string" FullWidth="true" Required="@true"
RequiredError="Password is required"
Label="Password" Variant="Variant.Outlined" Margin="Margin.Dense" />
<MudButton OnClick="OnLogin" FullWidth="true" StartIcon="@Icons.Material.Filled.Login" Color="Color.Primary" Variant="Variant.Filled">@Localizer["Log In"]</MudButton>
</div>
</MudForm>
</MudCardContent>
</MudCard>
</MudItem>
</MudGrid>
</MudContainer>
} else
{
// Already logged in
NavigationManager.NavigateTo("/");
}

View File

@ -7,17 +7,25 @@
@if (LoginService.OnlyAdmin || !LoginService.LoginRequired)
{
<MudText Typo="Typo.body1">Registration is currently closed.</MudText>
Console.WriteLine("Registration is disabled. Redirecting to Dashboard...");
NavigationManager.NavigateTo("/");
}
else if (LoginService.IsLoggedIn)
{
// User is already logged in. Redirect to dashboard.
NavigationManager.NavigateTo("/");
}
else
{
<MudContainer>
<MudGrid Justify="Justify.Center">
<MudItem xs="12" md="6" lg="4" class="mt-8">
<MudItem xs="12" md="6" lg="4">
<MudCard Elevation="0" Outlined="true">
<MudCardHeader>
<MudText Typo="Typo.h5">Register</MudText>
</MudCardHeader>
<MudCardContent>
<MudForm @ref="registerForm">
<MudText Typo="Typo.h5" Class="mb-4">Register</MudText>
<div style="display:flex;flex-direction:column;gap:15px;">
<MudTextField @bind-value="accessCode" InputType="InputType.Text" T="string"
FullWidth="true" Required="@true" RequiredError="Access Code is required"

View File

@ -40,6 +40,9 @@ public class LoginService
public int Login(string inputCardNum, string inputPassword, DashboardResponse response)
{
// strip spaces or dashes from card number
inputCardNum = inputCardNum.Replace(" ", "").Replace("-", "");
foreach (var user in response.Users.Where(user => user.AccessCodes.Contains(inputCardNum)))
{
foreach (var userCredential in response.UserCredentials.Where(userCredential => userCredential.Baid == user.Baid))
@ -64,6 +67,9 @@ public class LoginService
{
if (OnlyAdmin) return 0;
// strip spaces or dashes from card number
inputCardNum = inputCardNum.Replace(" ", "").Replace("-", "");
foreach (var user in response.Users.Where(user => user.AccessCodes.Contains(inputCardNum)))
{
foreach (var userCredential in response.UserCredentials.Where(userCredential => userCredential.Baid == user.Baid))

View File

@ -16,7 +16,7 @@
if (LoginService.LoginRequired && !LoginService.OnlyAdmin && !LoginService.IsLoggedIn) {
<MudDivider />
<MudNavLink Href="/Login" Match="NavLinkMatch.All" Icon="@Icons.Material.Filled.Login">@Localizer["Login"]</MudNavLink>
<MudNavLink Href="/Login" Match="NavLinkMatch.All" Icon="@Icons.Material.Filled.Login">@Localizer["Log In"]</MudNavLink>
<MudNavLink Href="/Register" Match="NavLinkMatch.All" Icon="@Icons.Material.Filled.AddCard">@Localizer["Register"]</MudNavLink>
}