Added custom views

This commit is contained in:
2025-02-01 16:15:28 +01:00
parent bfea4e9cff
commit 2256a59f9a
9 changed files with 246 additions and 47 deletions

View File

@@ -1,5 +1,6 @@
@using HopFrame.Core.Config
@using HopFrame.Core.Services
@using HopFrame.Web.Models
@using Microsoft.Extensions.DependencyInjection
@inherits LayoutComponentBase
@@ -39,10 +40,28 @@
@code {
internal static readonly List<CustomView> CustomViews = new();
protected override async Task OnInitializedAsync() {
var authorized = await Handler.IsAuthenticatedAsync(Config.BasePolicy);
var currentUri = "/" + Navigator.ToBaseRelativePath(Navigator.Uri);
if (authorized) {
foreach (var view in CustomViews.Where(view => !string.IsNullOrWhiteSpace(view.Policy))) {
switch (view.LinkMatch) {
case NavLinkMatch.All when currentUri != view.Url:
case NavLinkMatch.Prefix when !currentUri.StartsWith(view.Url):
continue;
}
authorized = await Handler.IsAuthenticatedAsync(view.Policy);
break;
}
}
if (!authorized) {
Navigator.NavigateTo((Config.LoginPageRewrite ?? "/login") + "?redirect=/" + Navigator.ToBaseRelativePath(Navigator.Uri), true);
Navigator.NavigateTo((Config.LoginPageRewrite ?? "/login") + "?redirect=" + currentUri, true);
}
}