_node_access_where_sql

Definition

_node_access_where_sql($op = 'view', $node_access_alias = 'na', $uid = NULL)
node/node.module, line 2834

Description

Generate an SQL where clause for use in fetching a node listing.

Parameters

$op The operation that must be allowed to return a node.

$node_access_alias If the node_access table has been given an SQL alias other than the default "na", that must be passed here.

Return value

An SQL where clause.

Related topics

Namesort iconDescription
Node access rightsThe node access system determines who can do what to which nodes.

Code

<?php
function _node_access_where_sql($op = 'view', $node_access_alias = 'na', $uid = NULL) {
  if (user_access('administer nodes')) {
    return;
  }

  $grants = array();
  foreach (node_access_grants($op, $uid) as $realm => $gids) {
    foreach ($gids as $gid) {
      $grants[] = "($node_access_alias.gid = $gid AND $node_access_alias.realm = '$realm')";
    }
  }

  $grants_sql = '';
  if (count($grants)) {
    $grants_sql = 'AND ('. implode(' OR ', $grants) .')';
  }

  $sql = "$node_access_alias.grant_$op >= 1 $grants_sql";
  return $sql;
}
?>