1
0
mirror of synced 2025-02-21 21:09:39 +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" /> <MudSkeleton Width="35%" Height="32px" />
} }
@if (user?.IsAdmin == true) @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> </div>
<MudText Typo="Typo.caption">User ID: @user?.Baid</MudText> <MudText Typo="Typo.caption">User ID: @user?.Baid</MudText>

View File

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

View File

@ -7,17 +7,25 @@
@if (LoginService.OnlyAdmin || !LoginService.LoginRequired) @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 else
{ {
<MudContainer> <MudContainer>
<MudGrid Justify="Justify.Center"> <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"> <MudCard Elevation="0" Outlined="true">
<MudCardHeader>
<MudText Typo="Typo.h5">Register</MudText>
</MudCardHeader>
<MudCardContent> <MudCardContent>
<MudForm @ref="registerForm"> <MudForm @ref="registerForm">
<MudText Typo="Typo.h5" Class="mb-4">Register</MudText>
<div style="display:flex;flex-direction:column;gap:15px;"> <div style="display:flex;flex-direction:column;gap:15px;">
<MudTextField @bind-value="accessCode" InputType="InputType.Text" T="string" <MudTextField @bind-value="accessCode" InputType="InputType.Text" T="string"
FullWidth="true" Required="@true" RequiredError="Access Code is required" 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) 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 user in response.Users.Where(user => user.AccessCodes.Contains(inputCardNum)))
{ {
foreach (var userCredential in response.UserCredentials.Where(userCredential => userCredential.Baid == user.Baid)) foreach (var userCredential in response.UserCredentials.Where(userCredential => userCredential.Baid == user.Baid))
@ -64,6 +67,9 @@ public class LoginService
{ {
if (OnlyAdmin) return 0; 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 user in response.Users.Where(user => user.AccessCodes.Contains(inputCardNum)))
{ {
foreach (var userCredential in response.UserCredentials.Where(userCredential => userCredential.Baid == user.Baid)) 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) { if (LoginService.LoginRequired && !LoginService.OnlyAdmin && !LoginService.IsLoggedIn) {
<MudDivider /> <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> <MudNavLink Href="/Register" Match="NavLinkMatch.All" Icon="@Icons.Material.Filled.AddCard">@Localizer["Register"]</MudNavLink>
} }