MRB webassembly
This commit is contained in:
		
							
								
								
									
										113
									
								
								MesaFabApproval.Client/Pages/Login.razor
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										113
									
								
								MesaFabApproval.Client/Pages/Login.razor
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,113 @@ | ||||
| @page "/login" | ||||
| @page "/login/{redirectUrl}" | ||||
| @page "/login/{redirectUrl}/{redirectUrlSub}" | ||||
| @attribute [AllowAnonymous] | ||||
| @inject MesaFabApprovalAuthStateProvider authStateProvider | ||||
| @inject NavigationManager navManager | ||||
| @inject ISnackbar snackbar | ||||
|  | ||||
| <MudPaper Class="p-2 m-2"> | ||||
|     <MudText Typo="Typo.h3" Align="Align.Center">Login</MudText> | ||||
| </MudPaper> | ||||
|  | ||||
| <MudPaper Class="p-2 m-2"> | ||||
|     <MudForm @bind-IsValid="@success" @bind-Errors="@errors"> | ||||
|         <MudTextField T="string" | ||||
|                       Label="Windows Username" | ||||
|                       Required="true" | ||||
|                       RequiredError="Username is required!" | ||||
|                       Variant="Variant.Outlined" | ||||
|                       @bind-Value=username  | ||||
|                       Class="m-1" | ||||
|                       Immediate="true" | ||||
|                       AutoFocus | ||||
|                       OnKeyDown=SubmitIfEnter /> | ||||
|         <MudTextField T="string" | ||||
|                       Label="Windows Password" | ||||
|                       Required="true" | ||||
|                       RequiredError="Password is required!" | ||||
|                       Variant="Variant.Outlined" | ||||
|                       @bind-Value=password | ||||
|                       InputType="InputType.Password" | ||||
|                       Class="m-1" | ||||
|                       Immediate="true"  | ||||
|                       OnKeyDown=SubmitIfEnter /> | ||||
|         <MudButton  | ||||
|             Variant="Variant.Filled" | ||||
|             Color="Color.Tertiary" | ||||
|             Disabled="@(!success)" | ||||
|             Class="m-1" | ||||
|             OnClick=SubmitLogin > | ||||
|             @if (processing) { | ||||
|                 <MudProgressCircular Class="m-1" Size="Size.Small" Indeterminate="true" /> | ||||
|                 <MudText>Processing</MudText> | ||||
|             } else { | ||||
|                 <MudText>Log In</MudText> | ||||
|             } | ||||
|         </MudButton> | ||||
|         <MudDivider /> | ||||
|         @* <MudButton | ||||
|             Variant="Variant.Filled" | ||||
|             Color="Color.Tertiary" | ||||
|             Class="m-1" | ||||
|             OnClick="LoginLocal" > | ||||
|         @if (processingLocal) { | ||||
|             <MudProgressCircular Class="m-1" Size="Size.Small" Indeterminate="true" /> | ||||
|             <MudText>Processing</MudText> | ||||
|         } else { | ||||
|             <MudText>Log In (SSO)</MudText> | ||||
|         } | ||||
|         </MudButton> *@ | ||||
|     </MudForm> | ||||
| </MudPaper> | ||||
|  | ||||
| @code { | ||||
|     [Parameter] | ||||
|     public string? redirectUrl { get; set; } | ||||
|     [Parameter] | ||||
|     public string? redirectUrlSub { get; set; } | ||||
|     private bool success; | ||||
|     private bool processing = false; | ||||
|     private bool processingLocal = false; | ||||
|     private string[] errors = { }; | ||||
|     private string? username; | ||||
|     private string? password; | ||||
|  | ||||
|     private async Task SubmitLogin() { | ||||
|         processing = true; | ||||
|         if (string.IsNullOrWhiteSpace(username)) snackbar.Add("Username is required!", Severity.Error); | ||||
|         else if (string.IsNullOrWhiteSpace(password)) snackbar.Add("Password is required!", Severity.Error); | ||||
|         else { | ||||
|             await authStateProvider.LoginAsync(username, password); | ||||
|             if (!string.IsNullOrWhiteSpace(redirectUrl) && !string.IsNullOrWhiteSpace(redirectUrlSub)) { | ||||
|                 navManager.NavigateTo($"{redirectUrl}/{redirectUrlSub}"); | ||||
|             } else if (!string.IsNullOrWhiteSpace(redirectUrl)) { | ||||
|                 navManager.NavigateTo(redirectUrl); | ||||
|             } else { | ||||
|                 navManager.NavigateTo("dashboard"); | ||||
|             } | ||||
|         } | ||||
|         processing = false; | ||||
|     } | ||||
|  | ||||
|     private async Task SubmitIfEnter(KeyboardEventArgs e) { | ||||
|         if (e.Key == "Enter" && success) { | ||||
|             SubmitLogin(); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private async Task LoginLocal() { | ||||
|         processingLocal = true; | ||||
|  | ||||
|         await authStateProvider.LoginLocal(); | ||||
|         if (!string.IsNullOrWhiteSpace(redirectUrl) && !string.IsNullOrWhiteSpace(redirectUrlSub)) { | ||||
|             navManager.NavigateTo($"{redirectUrl}/{redirectUrlSub}"); | ||||
|         } else if (!string.IsNullOrWhiteSpace(redirectUrl)) { | ||||
|             navManager.NavigateTo(redirectUrl); | ||||
|         } else { | ||||
|             navManager.NavigateTo("dashboard"); | ||||
|         } | ||||
|  | ||||
|         processingLocal = false; | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user