using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; using PluralKit.Core; namespace PluralKit.API { public class SystemPrivacyHandler: AuthorizationHandler, PKSystem> { protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, PrivacyRequirement requirement, PKSystem resource) { var level = requirement.Mapper(resource); var ctx = context.User.ContextFor(resource); if (level.CanAccess(ctx)) context.Succeed(requirement); return Task.CompletedTask; } } }