diff options
Diffstat (limited to 'ShareGuard.Web.Client')
| -rw-r--r-- | ShareGuard.Web.Client/Pages/Redeem.razor | 53 | ||||
| -rw-r--r-- | ShareGuard.Web.Client/Program.cs | 5 | ||||
| -rw-r--r-- | ShareGuard.Web.Client/Properties/launchSettings.json | 25 | ||||
| -rw-r--r-- | ShareGuard.Web.Client/ShareGuard.Web.Client.csproj | 69 | ||||
| -rw-r--r-- | ShareGuard.Web.Client/_Imports.razor | 9 |
5 files changed, 161 insertions, 0 deletions
diff --git a/ShareGuard.Web.Client/Pages/Redeem.razor b/ShareGuard.Web.Client/Pages/Redeem.razor new file mode 100644 index 0000000..d6abc95 --- /dev/null +++ b/ShareGuard.Web.Client/Pages/Redeem.razor @@ -0,0 +1,53 @@ +@page "/redeem/{Token}/" +@using System.Net +@rendermode @(new InteractiveWebAssemblyRenderMode(false)) +@inject IJSRuntime Js +@inject NavigationManager navigation + +@if (_responseCode == null) +{ + <p>Loading...</p> +} +else if (_responseCode == HttpStatusCode.Forbidden) +{ + <b>Invalid invitation!</b> +} +else if (_responseCode == HttpStatusCode.NoContent) +{ + <b>No template providen by admin.</b> +} +else if (_responseCode == HttpStatusCode.BadRequest) +{ + <b>An internal error occured.</b> +} +else +{ + @foreach (var configLine in _config!.Split("\n")) + { + <p>@configLine</p> + } +} + +@code { + private readonly HttpClient _httpClient = new(); + [Parameter] public string Token { get; set; } + private HttpStatusCode? _responseCode; + private string? _config; + + protected override async Task OnInitializedAsync() + { + var keypair = await Js.InvokeAsync<Dictionary<string, string>>("wireguard.generateKeypair"); + var requestBody = new Dictionary<string, string> + { + { "PublicKey", keypair["publicKey"] } + }; + var response = await _httpClient.PostAsync($"{navigation.BaseUri}api/redeem/{Token}/", new FormUrlEncodedContent(requestBody)); + _responseCode = response.StatusCode; + var template = await response.Content.ReadAsStringAsync(); + + if (_responseCode == HttpStatusCode.OK) + _config = template.Replace("{publicKey}", keypair["publicKey"]) + .Replace("{privateKey}", keypair["privateKey"]); + } + +} diff --git a/ShareGuard.Web.Client/Program.cs b/ShareGuard.Web.Client/Program.cs new file mode 100644 index 0000000..91db88a --- /dev/null +++ b/ShareGuard.Web.Client/Program.cs @@ -0,0 +1,5 @@ +using Microsoft.AspNetCore.Components.WebAssembly.Hosting; + +var builder = WebAssemblyHostBuilder.CreateDefault(args); + +await builder.Build().RunAsync();
\ No newline at end of file diff --git a/ShareGuard.Web.Client/Properties/launchSettings.json b/ShareGuard.Web.Client/Properties/launchSettings.json new file mode 100644 index 0000000..421d5de --- /dev/null +++ b/ShareGuard.Web.Client/Properties/launchSettings.json @@ -0,0 +1,25 @@ +{ + "$schema": "https://json.schemastore.org/launchsettings.json", + "profiles": { + "http": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", + "applicationUrl": "http://localhost:5225", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "https": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", + "applicationUrl": "https://localhost:7291;http://localhost:5225", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + } + } +} diff --git a/ShareGuard.Web.Client/ShareGuard.Web.Client.csproj b/ShareGuard.Web.Client/ShareGuard.Web.Client.csproj new file mode 100644 index 0000000..b0dfa37 --- /dev/null +++ b/ShareGuard.Web.Client/ShareGuard.Web.Client.csproj @@ -0,0 +1,69 @@ +<Project Sdk="Microsoft.NET.Sdk.BlazorWebAssembly"> + + <PropertyGroup> + <TargetFramework>net10.0</TargetFramework> + <Nullable>enable</Nullable> + <ImplicitUsings>enable</ImplicitUsings> + <OverrideHtmlAssetPlaceholders>true</OverrideHtmlAssetPlaceholders> + </PropertyGroup> + + <ItemGroup> + <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="10.0.1"/> + <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="10.0.1" PrivateAssets="all"/> + </ItemGroup> + + <ItemGroup> + <_ContentIncludedByDefault Remove="Layout\MainLayout.razor"/> + <_ContentIncludedByDefault Remove="Layout\NavMenu.razor"/> + <_ContentIncludedByDefault Remove="wwwroot\css\app.css" /> + <_ContentIncludedByDefault Remove="wwwroot\favicon.png" /> + <_ContentIncludedByDefault Remove="wwwroot\icon-192.png" /> + <_ContentIncludedByDefault Remove="wwwroot\index.html" /> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-grid.css" /> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-grid.css.map" /> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-grid.min.css" /> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-grid.min.css.map" /> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-grid.rtl.css" /> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-grid.rtl.css.map" /> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-grid.rtl.min.css" /> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-grid.rtl.min.css.map" /> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-reboot.css" /> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-reboot.css.map" /> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-reboot.min.css" /> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-reboot.min.css.map" /> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-reboot.rtl.css" /> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-reboot.rtl.css.map" /> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-reboot.rtl.min.css" /> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-reboot.rtl.min.css.map" /> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-utilities.css" /> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-utilities.css.map" /> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-utilities.min.css" /> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-utilities.min.css.map" /> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-utilities.rtl.css" /> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-utilities.rtl.css.map" /> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-utilities.rtl.min.css" /> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-utilities.rtl.min.css.map" /> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap.css" /> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap.css.map" /> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap.min.css" /> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap.min.css.map" /> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap.rtl.css" /> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap.rtl.css.map" /> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap.rtl.min.css" /> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap.rtl.min.css.map" /> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\js\bootstrap.bundle.js" /> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\js\bootstrap.bundle.js.map" /> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\js\bootstrap.bundle.min.js" /> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\js\bootstrap.bundle.min.js.map" /> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\js\bootstrap.esm.js" /> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\js\bootstrap.esm.js.map" /> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\js\bootstrap.esm.min.js" /> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\js\bootstrap.esm.min.js.map" /> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\js\bootstrap.js" /> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\js\bootstrap.js.map" /> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\js\bootstrap.min.js" /> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\js\bootstrap.min.js.map" /> + <_ContentIncludedByDefault Remove="wwwroot\sample-data\weather.json" /> + </ItemGroup> + +</Project> diff --git a/ShareGuard.Web.Client/_Imports.razor b/ShareGuard.Web.Client/_Imports.razor new file mode 100644 index 0000000..8233d90 --- /dev/null +++ b/ShareGuard.Web.Client/_Imports.razor @@ -0,0 +1,9 @@ +@using System.Net.Http +@using System.Net.Http.Json +@using Microsoft.AspNetCore.Components.Forms +@using Microsoft.AspNetCore.Components.Routing +@using Microsoft.AspNetCore.Components.Web +@using Microsoft.AspNetCore.Components.Web.Virtualization +@using Microsoft.AspNetCore.Components.WebAssembly.Http +@using Microsoft.JSInterop +@using ShareGuard.Web.Client
\ No newline at end of file |
