From ff9b1e112ed14746ed74dfff1fb4c19efd5502d4 Mon Sep 17 00:00:00 2001 From: Tim Date: Sat, 19 Apr 2025 12:16:15 +0200 Subject: Add user information settings --- VPNAuth.Server/Program.cs | 44 +++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 41 insertions(+), 3 deletions(-) (limited to 'VPNAuth.Server/Program.cs') diff --git a/VPNAuth.Server/Program.cs b/VPNAuth.Server/Program.cs index 6ea0b40..822aba7 100644 --- a/VPNAuth.Server/Program.cs +++ b/VPNAuth.Server/Program.cs @@ -20,11 +20,12 @@ if (!app.Environment.IsDevelopment()) } app.UseHttpsRedirection(); - +app.UseStaticFiles(new StaticFileOptions +{ + RequestPath = "/static" +}); app.UseRouting(); -app.UseAuthorization(); - app.MapGet("/accept-auth/{id}", async (HttpContext context, int id) => { using var db = new Database(); @@ -91,6 +92,43 @@ app.MapPost("/access-token", async (HttpContext context) => }); }); +app.MapPost("/user-info", async (HttpContext context) => +{ + using var db = new Database(); + + ConfigUser? configUser = context.GetUser(); + + if (configUser == null) + { + context.Response.StatusCode = StatusCodes.Status401Unauthorized; + } + + UserInformation? userInformation = db.UserInformation.Where(user => user.Sub == configUser!.Username) + .ToList().FirstOrDefault() ?? db.Add(new UserInformation + { + Sub = configUser!.Username + }).Entity; + + if (context.Request.Form.ContainsKey("given-name")) + userInformation.GivenName = context.Request.Form["given-name"]!; + + if (context.Request.Form.ContainsKey("family-name")) + userInformation.FamilyName = context.Request.Form["family-name"]!; + + if (context.Request.Form.ContainsKey("preferred-username")) + userInformation.PreferredUsername = context.Request.Form["preferred-username"]!; + + if (context.Request.Form.ContainsKey("email")) + userInformation.Email = context.Request.Form["email"]!; + + if (context.Request.Form.ContainsKey("picture")) + userInformation.Picture = context.Request.Form["picture"]!; + + userInformation.Name = userInformation.GivenName + " " + userInformation.FamilyName; + + db.SaveChanges(); +}); + app.MapStaticAssets(); app.MapRazorPages() .WithStaticAssets(); -- cgit v1.2.3