From e0044658f9767889b52389c148d198fbd30b662b Mon Sep 17 00:00:00 2001 From: sbwalker Date: Mon, 21 Apr 2025 14:13:49 -0400 Subject: [PATCH] improve validation in Url Mapping --- .../Modules/Admin/UrlMappings/Add.razor | 44 ++++++++++--------- .../Modules/Admin/UrlMappings/Edit.razor | 5 ++- 2 files changed, 27 insertions(+), 22 deletions(-) diff --git a/Oqtane.Client/Modules/Admin/UrlMappings/Add.razor b/Oqtane.Client/Modules/Admin/UrlMappings/Add.razor index e57ad13e..a0a7ac9f 100644 --- a/Oqtane.Client/Modules/Admin/UrlMappings/Add.razor +++ b/Oqtane.Client/Modules/Admin/UrlMappings/Add.razor @@ -26,35 +26,37 @@ @code { - private ElementReference form; - private bool validated = false; + private ElementReference form; + private bool validated = false; - private string _url = string.Empty; - private string _mappedurl = string.Empty; + private string _url = string.Empty; + private string _mappedurl = string.Empty; - public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.Admin; + public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.Admin; - private async Task SaveUrlMapping() - { - validated = true; - var interop = new Interop(JSRuntime); - if (await interop.FormValid(form)) - { - if (_url != _mappedurl) - { - var url = PageState.Uri.Scheme + "://" + PageState.Uri.Authority + "/"; - url = url + (!string.IsNullOrEmpty(PageState.Alias.Path) ? PageState.Alias.Path + "/" : ""); + private async Task SaveUrlMapping() + { + validated = true; + var interop = new Interop(JSRuntime); + if (await interop.FormValid(form)) + { + if (_url != _mappedurl) + { + var url = PageState.Uri.Scheme + "://" + PageState.Uri.Authority + "/"; + url = url + (!string.IsNullOrEmpty(PageState.Alias.Path) ? PageState.Alias.Path + "/" : ""); - _url = (_url.StartsWith("/")) ? _url.Substring(1) : _url; - _url = (!_url.StartsWith("http")) ? url + _url : _url; + _url = (_url.StartsWith("/")) ? _url.Substring(1) : _url; + _url = (!_url.StartsWith("http")) ? url + _url : _url; - if (_url.StartsWith(url)) + _mappedurl = _mappedurl.Replace(url, ""); + _mappedurl = (_mappedurl.StartsWith("/")) ? _mappedurl.Substring(1) : _mappedurl; + + if (_url.StartsWith(url)) { var urlmapping = new UrlMapping(); urlmapping.SiteId = PageState.Site.SiteId; - var route = new Route(_url, PageState.Alias.Path); - urlmapping.Url = route.PagePath; - urlmapping.MappedUrl = _mappedurl.Replace(url, ""); + urlmapping.Url = new Route(_url, PageState.Alias.Path).PagePath; + urlmapping.MappedUrl = _mappedurl; urlmapping.Requests = 0; urlmapping.CreatedOn = DateTime.UtcNow; urlmapping.RequestedOn = DateTime.UtcNow; diff --git a/Oqtane.Client/Modules/Admin/UrlMappings/Edit.razor b/Oqtane.Client/Modules/Admin/UrlMappings/Edit.razor index 10c9a57f..073f851d 100644 --- a/Oqtane.Client/Modules/Admin/UrlMappings/Edit.razor +++ b/Oqtane.Client/Modules/Admin/UrlMappings/Edit.razor @@ -67,8 +67,11 @@ var url = PageState.Uri.Scheme + "://" + PageState.Uri.Authority + "/"; url = url + (!string.IsNullOrEmpty(PageState.Alias.Path) ? PageState.Alias.Path + "/" : ""); + _mappedurl = _mappedurl.Replace(url, ""); + _mappedurl = (_mappedurl.StartsWith("/")) ? _mappedurl.Substring(1) : _mappedurl; + var urlmapping = await UrlMappingService.GetUrlMappingAsync(_urlmappingid); - urlmapping.MappedUrl = _mappedurl.Replace(url, ""); + urlmapping.MappedUrl = _mappedurl; urlmapping = await UrlMappingService.UpdateUrlMappingAsync(urlmapping); await logger.LogInformation("UrlMapping Saved {UrlMapping}", urlmapping); NavigationManager.NavigateTo(NavigateUrl());