diff options
Diffstat (limited to 'VPNAuth.Server/Pages/Settings.cshtml')
-rw-r--r-- | VPNAuth.Server/Pages/Settings.cshtml | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/VPNAuth.Server/Pages/Settings.cshtml b/VPNAuth.Server/Pages/Settings.cshtml new file mode 100644 index 0000000..c706e98 --- /dev/null +++ b/VPNAuth.Server/Pages/Settings.cshtml @@ -0,0 +1,90 @@ +@page "/" +@using VPNAuth.Server +@using VPNAuth.Server.Database + +@{ + Layout = null; + + ConfigUser? configUser = Request.HttpContext.GetUser(); + + UserInformation? dbUser = null; + + if (configUser != null) + { + using var db = new Database(); + dbUser = db.UserInformation.Where(user => user.Sub == configUser!.Username).ToList().FirstOrDefault(); + } +} + +<!DOCTYPE html> + +<html> +<head> + <title>VPNAuth - Settings</title> + <link rel="stylesheet" href="/static/style.css"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> +</head> +<body> + @if (configUser == null) + { + <p>No user detected with IP <code>@Request.HttpContext.GetRemoteIpAddress()</code>.</p> + } + else + { + <div> + <h1>Settings</h1> + <form hx-post="/user-info-settings" hx-swap="none" hx-trigger="change"> + <table> + <tbody> + <tr> + <th>Username</th> + <th class="normal">@dbUser?.Sub</th> + </tr> + <tr> + <th><label for="given-name">Given name</label></th> + <th><input name="given-name" id="given-name" type="text" + value="@dbUser?.GivenName"/></th> + </tr> + <tr> + <th><label for="family-name">Family name</label></th> + <th><input name="family-name" id="family-name" type="text" + value="@dbUser?.FamilyName"/></th> + </tr> + <tr> + <th><label for="preferred-username">Preferred username</label></th> + <th><input name="preferred-username" id="preferred-username" type="text" + value="@dbUser?.PreferredUsername"/></th> + </tr> + <tr> + <th><label for="email">Email</label></th> + <th><input name="email" id="email" type="email" + value="@dbUser?.Email"/></th> + </tr> + <tr> + <th><label for="email">Picture URL</label></th> + <th><input name="picture" id="picture" type="url" + value="@dbUser?.Picture"/></th> + </tr> + <tr> + <th>IPs</th> + <th class="normal"> + <ul> + @foreach (var ip in configUser.Ips!) + { + <li>@ip</li> + } + </ul> + </th> + </tr> + </tbody> + </table> + </form> + </div> + } + + <footer> + <p style="margin-top: 5em;"><a target="_blank" href="https://bytim.eu/projects/VPNAuth/">VPNAuth</a> by Tim</p> + </footer> + <script src="/static/htmx.js"></script> +</body> +</html> |