Cleanud up auth code

This commit is contained in:
Masu-Baumgartner
2024-11-12 10:29:50 +01:00
parent a074f0c4f0
commit e5555c815b
6 changed files with 38 additions and 92 deletions

View File

@@ -0,0 +1,33 @@
using System.Text.Json;
using MoonCore.Authentication;
using Moonlight.ApiServer.Database.Entities;
namespace Moonlight.ApiServer.Http.Middleware;
public class PermissionLoaderMiddleware
{
private readonly RequestDelegate Next;
public PermissionLoaderMiddleware(RequestDelegate next)
{
Next = next;
}
public async Task Invoke(HttpContext context)
{
await Load(context);
await Next(context);
}
private Task Load(HttpContext context)
{
if(context.User is not PermClaimsPrinciple permClaimsPrinciple)
return Task.CompletedTask;
if(permClaimsPrinciple.IdentityModel is not User user)
return Task.CompletedTask;
permClaimsPrinciple.Permissions = JsonSerializer.Deserialize<string[]>(user.PermissionsJson) ?? [];
return Task.CompletedTask;
}
}