From 771b949618bb4e07c09c2fb94a7f92e13f471b9e Mon Sep 17 00:00:00 2001 From: Tim Date: Thu, 25 Dec 2025 19:59:26 +0100 Subject: Initial commit --- ShareGuard.Web/Components/Pages/Admin.razor | 119 ++++++++++++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 ShareGuard.Web/Components/Pages/Admin.razor (limited to 'ShareGuard.Web/Components/Pages/Admin.razor') diff --git a/ShareGuard.Web/Components/Pages/Admin.razor b/ShareGuard.Web/Components/Pages/Admin.razor new file mode 100644 index 0000000..3884630 --- /dev/null +++ b/ShareGuard.Web/Components/Pages/Admin.razor @@ -0,0 +1,119 @@ +@page "/admin/" +@using ShareGuard.Web.DbModels +@rendermode InteractiveServer + +ShareGuard Admin + +

ShareGuard Admin

+ +
Generate Share-Link
+
+ + +
+
+ + +
+ + +
WG-Quick Template
+

You can use the following placeholders: +
{ip} for the peer's ip address(es) +
{publicKey} for the peer's public key +
{privateKey} for the peer's private key

+
+ + This template will be generated for your users. +
+ + +@if (_links != null) +{ +
History
+ + + + + + + + + + + + @foreach (var link in _links) + { + + + + @if (link.PeerPublicKey == null) + { + + } + else + { + + } + + + + } + +
NameTokenClient Public KeyIP Address(es)Actions
@link.Name@link.TokenPending@link.PeerPublicKey@link.IpAddress + +
+} + +@code +{ + private const string TemplateFilePath = "./wg-quick-template.txt"; + private string? _template; + + private void SaveTemplate() + { + if (_template != null) + { + File.WriteAllText(TemplateFilePath, _template); + } + } + + private List? _links; + + protected override void OnInitialized() + { + if (File.Exists(TemplateFilePath)) _template = File.ReadAllText(TemplateFilePath); + using var db = new Database(); + _links = db.Links.ToList(); + } + + private string _newName = ""; + private string _newIpAddress = ""; + + private void GenerateNewLink() + { + using var db = new Database(); + db.Links.Add(new Link + { + Name = _newName, + IpAddress = _newIpAddress, + Token = Link.GenerateToken(db) + }); + db.SaveChanges(); + OnInitialized(); + } + + private void DeleteLink(Link link) + { + using var db = new Database(); + db.Remove(link); + db.SaveChanges(); + OnInitialized(); + } +} -- cgit v1.2.3