BCards/src/BCards.Web/Services/ModerationAuthService.cs
2025-07-12 02:32:22 -03:00

40 lines
1.1 KiB
C#

using BCards.Web.Configuration;
using Microsoft.Extensions.Options;
using System.Security.Claims;
namespace BCards.Web.Services
{
public class ModerationAuthService : IModerationAuthService
{
private readonly ModerationSettings _settings;
public ModerationAuthService(IOptions<ModerationSettings> settings)
{
_settings = settings.Value;
}
public bool IsUserModerator(ClaimsPrincipal user)
{
if (!user.Identity?.IsAuthenticated == true)
return false;
var email = user.FindFirst(ClaimTypes.Email)?.Value;
return IsEmailModerator(email);
}
public bool IsEmailModerator(string? email)
{
if (string.IsNullOrWhiteSpace(email))
return false;
return _settings.ModeratorEmails
.Any(moderatorEmail => moderatorEmail.Equals(email, StringComparison.OrdinalIgnoreCase));
}
public List<string> GetModeratorEmails()
{
return _settings.ModeratorEmails.ToList();
}
}
}