class AuditFilterAuthorizer {

    public boolean isOperationAuthorizedForUser(Permission operation, String user, List<? extends IResource> resourceChain)
    {
        AuthenticatedUser authUser = AuthenticatedUserUtil.createFromString(user);
        IAuthorizer authorizer = getAuthorizer();
        return resourceChain.stream()
                     .map(resource -> authorizer.authorize(authUser, resource))
                     .anyMatch(permissions -> permissions.contains(operation));
    }

}