finished admin login

This commit is contained in:
2024-11-19 18:20:27 +01:00
parent 61323f089d
commit 4801e790c0
7 changed files with 20 additions and 31 deletions

View File

@@ -12,7 +12,7 @@ A simple backend management api for ASP.NET Core Web APIs
- [x] Code cleanup - [x] Code cleanup
- [x] Relations in database - [x] Relations in database
- [x] Generated Admin pages - [x] Generated Admin pages
- [ ] Pretty Login page for administration - [x] Pretty Login page for administration
- [ ] Clean documentation - [ ] Clean documentation
# Usage # Usage

View File

@@ -17,7 +17,7 @@
@foreach (var adminPage in Pages.LoadRegisteredAdminPages()) { @foreach (var adminPage in Pages.LoadRegisteredAdminPages()) {
<AuthorizedView Permission="@adminPage.Permissions.View"> <AuthorizedView Permission="@adminPage.Permissions.View">
<BSCol Column="4" style="margin-bottom: 10px"> <BSCol Column="4" style="margin-bottom: 10px">
<BSCard CardType="CardType.Card" Color="BSColor.Dark" style="min-height: 200px"> <BSCard CardType="CardType.Card" Color="BSColor.Dark" style="min-height: 200px; min-width: 200px">
<BSCard CardType="CardType.Body" style="display: flex; flex-direction: column"> <BSCard CardType="CardType.Body" style="display: flex; flex-direction: column">
<BSCard CardType="CardType.Title">@adminPage.Title</BSCard> <BSCard CardType="CardType.Title">@adminPage.Title</BSCard>
<BSCard CardType="CardType.Subtitle"><span style="color: gray">@adminPage.Permissions.View</span></BSCard> <BSCard CardType="CardType.Subtitle"><span style="color: gray">@adminPage.Permissions.View</span></BSCard>

View File

@@ -12,29 +12,10 @@
<PageTitle>Login</PageTitle> <PageTitle>Login</PageTitle>
<div class="login-wrapper"> <div class="login-wrapper">
@*<EditForm Model="UserLogin" OnValidSubmit="Login" FormName="login-form">
<div class="field-wrapper">
<h3>Login</h3>
<div class="mb-3">
<BSLabel>E-Mail address</BSLabel>
<InputText type="email" class="form-control" required @bind-Value="UserLogin.Email"/>
</div>
<div class="mb-3">
<BSLabel>Password</BSLabel>
<InputText type="password" class="form-control" required @bind-Value="UserLogin.Password"/>
</div>
<BSButton Color="BSColor.Primary" IsSubmit="true">Login</BSButton>
@if (_hasError) {
<BSAlert Color="BSColor.Danger" style="margin-top: 16px; margin-bottom: 0">Email or password does not match any account!</BSAlert>
}
</div>
</EditForm>*@
<div id="login-card"> <div id="login-card">
<span id="login-title">HopFrame Administration</span> <span id="login-title">HopFrame Administration</span>
<span id="login-subtitle">Login to proceed</span> <span id="login-subtitle">Login to proceed</span>
<EditForm Model="UserLogin" OnInvalidSubmit="Login" FormName="login-form" style="display: flex; flex-grow: 1; flex-direction: column"> <EditForm Model="UserLogin" OnValidSubmit="Login" FormName="login-form" style="display: flex; flex-grow: 1; flex-direction: column">
<div class="mb-3"> <div class="mb-3">
<BSLabel>E-Mail address</BSLabel> <BSLabel>E-Mail address</BSLabel>
<InputText type="email" class="form-control" required @bind-Value="UserLogin.Email"/> <InputText type="email" class="form-control" required @bind-Value="UserLogin.Email"/>
@@ -76,7 +57,7 @@
} }
} }
private async Task Login() { //TODO: Login does not work private async Task Login() {
var result = await Auth.Login(UserLogin); var result = await Auth.Login(UserLogin);
if (!result) { if (!result) {
@@ -84,6 +65,6 @@
return; return;
} }
Navigator.NavigateTo(string.IsNullOrEmpty(RedirectAfter) ? DefaultRedirect : RedirectAfter, true); Navigator.NavigateTo(string.IsNullOrEmpty(RedirectAfter) ? DefaultRedirect : "/administration/" + RedirectAfter, true);
} }
} }

View File

@@ -29,6 +29,6 @@
#login-subtitle { #login-subtitle {
font-size: 24px; font-size: 24px;
opacity: .3; color: gray;
margin-bottom: 30px; margin-bottom: 30px;
} }

View File

@@ -18,7 +18,7 @@
@using HopFrame.Web.Components @using HopFrame.Web.Components
<PageTitle>@_pageData.Title</PageTitle> <PageTitle>@_pageData.Title</PageTitle>
<AuthorizedView Permission="@_pageData.Permissions.View" RedirectIfUnauthorized="administration/login" /> <AuthorizedView Permission="@_pageData.Permissions.View" RedirectIfUnauthorized="@GenerateRedirectString()" />
<AdminPageModal ReloadDelegate="Reload" @ref="_modal"/> <AdminPageModal ReloadDelegate="Reload" @ref="_modal"/>
@@ -243,4 +243,8 @@
}); });
} }
} }
private string GenerateRedirectString() {
return "/administration/login?redirect=" + _pageData?.Url;
}
} }

View File

@@ -1,9 +1,6 @@
@using HopFrame.Web.Components @using BlazorStrap.V5
@using BlazorStrap.V5
@inherits LayoutComponentBase @inherits LayoutComponentBase
<AuthorizedView Permission="@Security.AdminPermissions.IsAdmin" RedirectIfUnauthorized="administration/login" />
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous"> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous">
<div class="page" style="background-color: #2c3034; position: relative; min-height: 100vh"> <div class="page" style="background-color: #2c3034; position: relative; min-height: 100vh">

View File

@@ -66,6 +66,13 @@
} }
private void Logout() { private void Logout() {
Navigator.NavigateTo("administration/login", true); var redirectString = "";
if (!Navigator.Uri.EndsWith("administration") && !Navigator.Uri.EndsWith("administration/")) {
var parts = Navigator.Uri.Split("administration/");
redirectString = "?redirect=" + parts.Last();
}
Navigator.NavigateTo("administration/login" + redirectString, true);
} }
} }