Add team roles and content management updates

This commit is contained in:
AzuTear
2026-06-25 19:52:46 +02:00
parent 54293f4c45
commit 693769e5a8
126 changed files with 6966 additions and 738 deletions
+20 -1
View File
@@ -1,8 +1,10 @@
using Backend.Data;
using Backend.Endpoints;
using Backend.Services;
namespace Backend.Security;
public sealed class AdminSessionFilter(IUserSessionService userSessionService) : IEndpointFilter
public sealed class AdminSessionFilter(IUserSessionService userSessionService, AwardsDbContext db) : IEndpointFilter
{
public async ValueTask<object?> InvokeAsync(EndpointFilterInvocationContext context, EndpointFilterDelegate next)
{
@@ -17,6 +19,23 @@ public sealed class AdminSessionFilter(IUserSessionService userSessionService) :
return Results.Json(new { message = "Admin access requires an elevated role." }, statusCode: StatusCodes.Status403Forbidden);
}
var teamMember = await AuthEndpoints.FindTeamMemberForSessionAsync(db, session, context.HttpContext.RequestAborted);
if (teamMember is not null)
{
if (!teamMember.IsActive)
{
return Results.Unauthorized();
}
if (teamMember.MustChangePassword)
{
return Results.Json(new { message = "Bitte ändere zuerst dein temporäres Passwort." }, statusCode: StatusCodes.Status403Forbidden);
}
session.DisplayName = teamMember.DisplayName;
session.Role = AdminRoles.Normalize(teamMember.Role);
}
context.HttpContext.SetCurrentSession(session);
return await next(context);
}