Simplify.Web.Core.Controllers.ControllersAgent.IsSecurityRulesViolated C# (CSharp) Method

IsSecurityRulesViolated() public method

Determines whether controller security rules violated.
public IsSecurityRulesViolated ( IControllerMetaData metaData, ClaimsPrincipal user ) : SecurityRuleCheckResult
metaData IControllerMetaData The controller meta data.
user System.Security.Claims.ClaimsPrincipal The current request user.
return SecurityRuleCheckResult
		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;
		}
	}