summaryrefslogtreecommitdiff
path: root/VPNAuth.Server/Program.cs
diff options
context:
space:
mode:
Diffstat (limited to 'VPNAuth.Server/Program.cs')
-rw-r--r--VPNAuth.Server/Program.cs44
1 files changed, 41 insertions, 3 deletions
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();