protected virtual async Task CheckGrantsAsync(IAuthorizeInfo authorizeInfo, CancellationToken cancellationToken) { if (await permissionChecker.IsGrantedAsync(authorizeInfo.RequireAll, authorizeInfo.Permissions, cancellationToken)) { return; } throw new AuthorizationException("Permissões necessárias não estão concedidas."); }
private static async Task <bool> IsGrantedAllAsync(this IGrantChecker permissionChecker, string[] permissionNames, CancellationToken cancellationToken) { if (permissionNames.IsNullOrEmpty()) { return(true); } foreach (var item in permissionNames) { if (!await permissionChecker.IsGrantedAsync(item, cancellationToken)) { return(false); } } return(true); }