Updaed event logic and event creation system

This commit is contained in:
2025-11-30 20:14:08 +01:00
parent 5d1fc1f347
commit 8d0573eb7e
18 changed files with 122 additions and 528 deletions

View File

@@ -1,5 +1,6 @@
using HopFrame.Core.Services;
using Microsoft.EntityFrameworkCore;
using SpotiParty.Web.Models;
namespace SpotiParty.Web.Services;
@@ -8,14 +9,10 @@ public class DashboardAuthHandler(ClientSideStorage storage, IDbContextFactory<D
public const string AdminPolicy = "ADMIN";
public async Task<bool> IsAuthenticatedAsync(string? policy) {
var token = storage.GetUserToken();
if (string.IsNullOrWhiteSpace(token))
var user = await GetCurrentUser();
if (user is null)
return false;
await using var context = await contextFactory.CreateDbContextAsync();
var user = await context.Users.AsNoTracking().FirstOrDefaultAsync(u => u.RefreshToken == token);
if (user is null) return false;
if (policy == AdminPolicy) {
return user.IsAdmin;
}
@@ -34,4 +31,14 @@ public class DashboardAuthHandler(ClientSideStorage storage, IDbContextFactory<D
return user.DisplayName;
}
public async Task<User?> GetCurrentUser() {
var token = storage.GetUserToken();
if (string.IsNullOrWhiteSpace(token))
return null;
await using var context = await contextFactory.CreateDbContextAsync();
return await context.Users.AsNoTracking().FirstOrDefaultAsync(u => u.RefreshToken == token);
}
}