Loading nodes that are only available to the current user How do I programmatically load nodes that are available to the current user?
I used node_load_multiple(), but it seems to directly load nodes from the database, bypassing permissions.
You need to use the EntityFieldQuery class. The following is example code to load all the published nodes whose content type is Article.
$query = new EntityFieldQuery();
$query-&gt;entityCondition('entity_type', 'node')
  -&gt;entityCondition('bundle', 'article')
  -&gt;propertyCondition('status', NODE_PUBLISHED);

$result = $query-&gt;execute();
if (isset($result['node'])) {
  $nids = array_keys($result['node']);
  $nodes = entity_load('node', $nids);
}

EntityFieldQuery returns only the nodes to which the currently logged-in user has access. In the case you would get all the nodes for which you know the author user ID, you should use the following code.
$query = new EntityFieldQuery();
$query-&gt;entityCondition('entity_type', 'node')
  -&gt;entityCondition('bundle', 'article')
  -&gt;propertyCondition('status', NODE_PUBLISHED)
  -&gt;propertyCondition('uid', $uid);

$result = $query-&gt;execute();
if (isset($result['node'])) {
  $nids = array_keys($result['node']);
  $nodes = entity_load('node', $nids);
}

That code returns all the nodes created in the site. To get only 10 nodes, it sufficient to add a call to $query-&gt;range(0, 10) before calling $query-&gt;execute().