diff --git a/src/HopFrame.Web/Models/HopFrameWebModuleConfig.cs b/src/HopFrame.Web/Models/HopFrameWebModuleConfig.cs new file mode 100644 index 0000000..226b144 --- /dev/null +++ b/src/HopFrame.Web/Models/HopFrameWebModuleConfig.cs @@ -0,0 +1,5 @@ +namespace HopFrame.Web.Models; + +public class HopFrameWebModuleConfig { + public string AdminLoginPageUri { get; set; } = "/administration/login"; +} \ No newline at end of file diff --git a/src/HopFrame.Web/Pages/Administration/AdminDashboard.razor b/src/HopFrame.Web/Pages/Administration/AdminDashboard.razor index fe7afb1..30acfcb 100644 --- a/src/HopFrame.Web/Pages/Administration/AdminDashboard.razor +++ b/src/HopFrame.Web/Pages/Administration/AdminDashboard.razor @@ -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 - + Admin Dashboard @@ -38,11 +39,16 @@ @inject NavigationManager Navigator @inject IAdminPagesProvider Pages @inject IOptions 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"; } } diff --git a/src/HopFrame.Web/Pages/Administration/AdminLogin.razor b/src/HopFrame.Web/Pages/Administration/AdminLogin.razor index 8e0f1e1..a6d1566 100644 --- a/src/HopFrame.Web/Pages/Administration/AdminLogin.razor +++ b/src/HopFrame.Web/Pages/Administration/AdminLogin.razor @@ -65,6 +65,6 @@ return; } - Navigator.NavigateTo(string.IsNullOrEmpty(RedirectAfter) ? DefaultRedirect : "/administration/" + RedirectAfter, true); + Navigator.NavigateTo(string.IsNullOrEmpty(RedirectAfter) ? DefaultRedirect : RedirectAfter, true); } } \ No newline at end of file diff --git a/src/HopFrame.Web/Pages/Administration/AdminPageList.razor b/src/HopFrame.Web/Pages/Administration/AdminPageList.razor index 1086918..780d7ac 100644 --- a/src/HopFrame.Web/Pages/Administration/AdminPageList.razor +++ b/src/HopFrame.Web/Pages/Administration/AdminPageList.razor @@ -16,6 +16,7 @@ @using HopFrame.Security.Claims @using HopFrame.Web.Admin @using HopFrame.Web.Components +@using HopFrame.Web.Models @_pageData.Title @@ -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; } } \ No newline at end of file diff --git a/src/HopFrame.Web/ServiceCollectionExtensions.cs b/src/HopFrame.Web/ServiceCollectionExtensions.cs index 4b6232a..f87dc4b 100644 --- a/src/HopFrame.Web/ServiceCollectionExtensions.cs +++ b/src/HopFrame.Web/ServiceCollectionExtensions.cs @@ -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(this IServiceCollection services, ConfigurationManager configuration) where TDbContext : HopDbContextBase { + public static IServiceCollection AddHopFrame(this IServiceCollection services, ConfigurationManager configuration, HopFrameWebModuleConfig config = null) where TDbContext : HopDbContextBase { services.AddHttpClient(); services.AddHopFrameRepositories(); services.AddScoped(); services.AddTransient(); services.AddAdminContext(); + services.AddSingleton(config ?? new HopFrameWebModuleConfig()); // Component library's services.AddSweetAlert2();