Updated MoonCore dependencies. Switched to asp.net core native authentication scheme abstractions. Updated claim usage in frontend

This commit is contained in:
2025-08-20 16:16:31 +02:00
parent 60178dc54b
commit 3cc48fb8f7
42 changed files with 1459 additions and 858 deletions

View File

@@ -0,0 +1,42 @@
using MoonCore.Extended.Abstractions;
using Moonlight.ApiServer.Database.Entities;
using Moonlight.ApiServer.Interfaces;
using Moonlight.ApiServer.Models;
namespace Moonlight.ApiServer.Services;
public class UserDeletionService
{
private readonly IUserDeleteHandler[] Handlers;
private readonly DatabaseRepository<User> UserRepository;
public UserDeletionService(
IEnumerable<IUserDeleteHandler> handlers,
DatabaseRepository<User> userRepository
)
{
UserRepository = userRepository;
Handlers = handlers.ToArray();
}
public async Task<UserDeleteValidationResult> Validate(User user)
{
foreach (var handler in Handlers)
{
var result = await handler.Validate(user);
if (!result.IsAllowed)
return result;
}
return UserDeleteValidationResult.Allow();
}
public async Task Delete(User user, bool force)
{
foreach (var handler in Handlers)
await Delete(user, force);
await UserRepository.Remove(user);
}
}