using System.Security.Principal; using System.Threading.Tasks; using Ombi.Core.Claims; using Ombi.Core.Models.Requests; using Ombi.Core.Rule.Interfaces; using Ombi.Store.Entities; using Ombi.Store.Entities.Requests; namespace Ombi.Core.Rule.Rules.Request { public class AutoApproveRule : BaseRequestRule, IRules { public AutoApproveRule(IPrincipal principal) { User = principal; } private IPrincipal User { get; } public Task Execute(BaseRequest obj) { if (User.IsInRole(OmbiClaims.Admin)) { obj.Approved = true; return Task.FromResult(Success()); } if (obj.RequestType == RequestType.Movie && User.IsInRole(OmbiClaims.AutoApproveMovie)) obj.Approved = true; if (obj.RequestType == RequestType.TvShow && User.IsInRole(OmbiClaims.AutoApproveTv)) obj.Approved = true; return Task.FromResult(Success()); // We don't really care, we just don't set the obj to approve } } }