From 19f924c3d3e229dd5fd66c42393db439c3f32d5d Mon Sep 17 00:00:00 2001 From: Shaun Walker Date: Fri, 20 Nov 2020 16:40:25 -0500 Subject: [PATCH] fix ModuleCreator Invalid character use in naming fields #889 --- .../Modules/Admin/ModuleCreator/Index.razor | 137 +++++++++--------- 1 file changed, 72 insertions(+), 65 deletions(-) diff --git a/Oqtane.Client/Modules/Admin/ModuleCreator/Index.razor b/Oqtane.Client/Modules/Admin/ModuleCreator/Index.razor index 2ad8f8ed..9da0deec 100644 --- a/Oqtane.Client/Modules/Admin/ModuleCreator/Index.razor +++ b/Oqtane.Client/Modules/Admin/ModuleCreator/Index.razor @@ -4,74 +4,75 @@ @inject IModuleDefinitionService ModuleDefinitionService @inject IModuleService ModuleService @inject ISystemService SystemService -@inject IStringLocalizer Localizer +@inject IStringLocalizer Localizer +@using System.Text.RegularExpressions - - - - - - - - - - - - - - - - - - - -
- - - -
- - - -
- - - -
- - - -
- - - + + + + + + + + + + + + + + + + + + + + + @if (!string.IsNullOrEmpty(_location)) + { + + + - @if (!string.IsNullOrEmpty(_location)) - { - - - - - } -
+ + + +
+ + + +
+ + + +
+ + + +
+ + + + +
+ + +
- - - -
+ } +
@@ -94,18 +95,18 @@ { try { - if (!string.IsNullOrEmpty(_owner) && !string.IsNullOrEmpty(_module) && _template != "-") + if (IsValid(_owner) && IsValid(_module) && _template != "-") { ShowProgressIndicator(); var interop = new Interop(JSRuntime); await interop.RedirectBrowser(NavigateUrl(), 5); - var moduleDefinition = new ModuleDefinition { Owner = _owner.Replace(" ", ""), Name = _module.Replace(" ", ""), Description = _description, Template = _template, Version = _reference }; + var moduleDefinition = new ModuleDefinition { Owner = _owner, Name = _module, Description = _description, Template = _template, Version = _reference }; await ModuleDefinitionService.CreateModuleDefinitionAsync(moduleDefinition, ModuleState.ModuleId); } else { - AddModuleMessage("You Must Provide An Owner, Module Name, And Template", MessageType.Warning); + AddModuleMessage("You Must Provide A Valid Owner Name, Module Name, And Template", MessageType.Warning); } } catch (Exception ex) @@ -114,6 +115,12 @@ } } + private bool IsValid(string name) + { + // must contain letters, underscores and digits and first character must be letter or underscore + return !string.IsNullOrEmpty(name) && Regex.IsMatch(name, "^[A-Za-z_][A-Za-z0-9_]*$"); + } + private async void TemplateChanged(ChangeEventArgs e) { try