added admin login url customization

This commit is contained in:
2024-12-23 11:33:16 +01:00
parent 20b82245d0
commit 20684ca40a
5 changed files with 20 additions and 5 deletions

View File

@@ -0,0 +1,5 @@
namespace HopFrame.Web.Models;
public class HopFrameWebModuleConfig {
public string AdminLoginPageUri { get; set; } = "/administration/login";
}

View File

@@ -8,11 +8,12 @@
@using HopFrame.Security.Authorization
@using HopFrame.Web.Admin.Providers
@using HopFrame.Web.Components
@using HopFrame.Web.Models
@using Microsoft.AspNetCore.Components.Web
@using Microsoft.Extensions.Options
@layout AdminLayout
<AuthorizedView Permission="@Options.Value.Dashboard" RedirectIfUnauthorized="/administration/login" />
<AuthorizedView Permission="@Options.Value.Dashboard" RedirectIfUnauthorized="@ConstructRedirectUri()" />
<PageTitle>Admin Dashboard</PageTitle>
@@ -38,11 +39,16 @@
@inject NavigationManager Navigator
@inject IAdminPagesProvider Pages
@inject IOptions<AdminPermissionOptions> Options
@inject HopFrameWebModuleConfig Config
@code {
public void NavigateTo(string url) {
Navigator.NavigateTo("administration/" + url, true);
Navigator.NavigateTo("/administration/" + url, true);
}
public string ConstructRedirectUri() {
return Config.AdminLoginPageUri + "?redirect=/administration";
}
}

View File

@@ -65,6 +65,6 @@
return;
}
Navigator.NavigateTo(string.IsNullOrEmpty(RedirectAfter) ? DefaultRedirect : "/administration/" + RedirectAfter, true);
Navigator.NavigateTo(string.IsNullOrEmpty(RedirectAfter) ? DefaultRedirect : RedirectAfter, true);
}
}

View File

@@ -16,6 +16,7 @@
@using HopFrame.Security.Claims
@using HopFrame.Web.Admin
@using HopFrame.Web.Components
@using HopFrame.Web.Models
<PageTitle>@_pageData.Title</PageTitle>
<AuthorizedView Permission="@_pageData.Permissions.Read" RedirectIfUnauthorized="@GenerateRedirectString()" />
@@ -107,6 +108,7 @@
@inject IPermissionRepository Permissions
@inject SweetAlertService Alerts
@inject NavigationManager Navigator
@inject HopFrameWebModuleConfig Config
@code {
[Parameter]
@@ -251,6 +253,6 @@
}
private string GenerateRedirectString() {
return "/administration/login?redirect=" + _pageData?.Url;
return Config.AdminLoginPageUri + "?redirect=/administration/" + _pageData?.Url;
}
}

View File

@@ -3,6 +3,7 @@ using CurrieTechnologies.Razor.SweetAlert2;
using HopFrame.Database;
using HopFrame.Security.Authentication;
using HopFrame.Web.Admin;
using HopFrame.Web.Models;
using HopFrame.Web.Services;
using HopFrame.Web.Services.Implementation;
using Microsoft.AspNetCore.Builder;
@@ -12,12 +13,13 @@ using Microsoft.Extensions.DependencyInjection;
namespace HopFrame.Web;
public static class ServiceCollectionExtensions {
public static IServiceCollection AddHopFrame<TDbContext>(this IServiceCollection services, ConfigurationManager configuration) where TDbContext : HopDbContextBase {
public static IServiceCollection AddHopFrame<TDbContext>(this IServiceCollection services, ConfigurationManager configuration, HopFrameWebModuleConfig config = null) where TDbContext : HopDbContextBase {
services.AddHttpClient();
services.AddHopFrameRepositories<TDbContext>();
services.AddScoped<IAuthService, AuthService>();
services.AddTransient<AuthMiddleware>();
services.AddAdminContext<HopAdminContext>();
services.AddSingleton(config ?? new HopFrameWebModuleConfig());
// Component library's
services.AddSweetAlert2();