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 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 GetModeratorEmails() { return _settings.ModeratorEmails.ToList(); } } }