diff options
Diffstat (limited to 'ShareGuard.Web')
| -rw-r--r-- | ShareGuard.Web/Components/Pages/Admin.razor | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/ShareGuard.Web/Components/Pages/Admin.razor b/ShareGuard.Web/Components/Pages/Admin.razor index 3884630..1eab4f6 100644 --- a/ShareGuard.Web/Components/Pages/Admin.razor +++ b/ShareGuard.Web/Components/Pages/Admin.razor @@ -1,9 +1,15 @@ @page "/admin/" +@using System.Text.RegularExpressions @using ShareGuard.Web.DbModels @rendermode InteractiveServer <PageTitle>ShareGuard Admin</PageTitle> +@if (_error != null) +{ + <div class="padding error-container">@_error</div> +} + <h2>ShareGuard Admin</h2> <h5>Generate Share-Link</h5> @@ -74,6 +80,7 @@ @code { private const string TemplateFilePath = "./wg-quick-template.txt"; + private string? _error; private string? _template; private void SaveTemplate() @@ -96,8 +103,26 @@ private string _newName = ""; private string _newIpAddress = ""; + private bool IpInputIsValid(string input) + { + var ipRegex = new Regex("([0-9a-fA-F:.]+\\/[0-9]{1,3}(, ?)?)+"); + return ipRegex.IsMatch(input); + } + private void GenerateNewLink() { + if (!IpInputIsValid(_newIpAddress)) + { + _error = "IP input is not valid."; + return; + } + + if (string.IsNullOrEmpty(_newName)) + { + _error = "Name input is not valid."; + return; + } + using var db = new Database(); db.Links.Add(new Link { @@ -106,6 +131,7 @@ Token = Link.GenerateToken(db) }); db.SaveChanges(); + _error = null; OnInitialized(); } |
