summaryrefslogtreecommitdiffstats
path: root/src/server/Utilities/HandleGithubCreatingTicket.cs
diff options
context:
space:
mode:
authorivarlovlie <git@ivarlovlie.no>2022-01-30 01:30:58 +0100
committerivarlovlie <git@ivarlovlie.no>2022-01-30 01:30:58 +0100
commitbda1e81c87a34bc0e6d2ce805f706a726087e957 (patch)
tree124ebf09d1289900e0d67d8723528b96bfbb6a7e /src/server/Utilities/HandleGithubCreatingTicket.cs
parent253c8479b9ae0ba6853a70728d3f6e904e1ac2ba (diff)
downloadbookmark-thing-bda1e81c87a34bc0e6d2ce805f706a726087e957.tar.xz
bookmark-thing-bda1e81c87a34bc0e6d2ce805f706a726087e957.zip
feat: WIP: Map github logins
When github is used for login, we want to create a mapping to a regular user in our database. This is mainly so that we don't have to change the PK in our database or add a column to it.
Diffstat (limited to 'src/server/Utilities/HandleGithubCreatingTicket.cs')
-rw-r--r--src/server/Utilities/HandleGithubCreatingTicket.cs30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/server/Utilities/HandleGithubCreatingTicket.cs b/src/server/Utilities/HandleGithubCreatingTicket.cs
new file mode 100644
index 0000000..3ead322
--- /dev/null
+++ b/src/server/Utilities/HandleGithubCreatingTicket.cs
@@ -0,0 +1,30 @@
+using Microsoft.AspNetCore.Authentication.OAuth;
+using Npgsql;
+
+namespace IOL.BookmarkThing.Server.Utilities;
+
+public static class HandleGithubCreatingTicket
+{
+ public static Task Handle(OAuthCreatingTicketContext context, IConfiguration configuration) {
+ var ghid = context.Identity?.FindFirst(p => p.Type == AppClaims.GITHUB_ID);
+ if (ghid == default) {
+ return default;
+ }
+
+ var connstring = ConnectionStrings.AppDatabaseConnectionString(configuration);
+ var connection = new NpgsqlConnection(connstring);
+ connection.Open();
+ var query = new NpgsqlCommand(@$"SELECT user_id FROM github_user_mappings WHERE github_id='{ghid}'", connection);
+ var x = query.ExecuteReader();
+ foreach (var row in x) {
+ Console.WriteLine(JsonSerializer.Serialize(row));
+ }
+
+ // var claims = context.Identity.Claims.ToList();
+ // foreach (var claim in claims) {
+ // context.Identity.RemoveClaim(claim);
+ // }
+
+ return Task.CompletedTask;
+ }
+}