public SecurityRuleCheckResult IsSecurityRulesViolated(IControllerMetaData metaData, ClaimsPrincipal user)
{
if (metaData.Security == null)
return SecurityRuleCheckResult.Ok;
if (!metaData.Security.IsAuthorizationRequired)
return SecurityRuleCheckResult.Ok;
if (metaData.Security.RequiredUserRoles == null)
return user?.Identity == null || !user.Identity.IsAuthenticated ? SecurityRuleCheckResult.NotAuthenticated : SecurityRuleCheckResult.Ok;
if (user?.Identity == null || !user.Identity.IsAuthenticated)
return SecurityRuleCheckResult.NotAuthenticated;
return metaData.Security.RequiredUserRoles.Any(user.IsInRole) ? SecurityRuleCheckResult.Ok : SecurityRuleCheckResult.Forbidden;
}
}