Same name and namespace in other branches
  1. 10 core/modules/node/node.module \node_access_view_all_nodes()
  2. 4.6.x modules/node.module \node_access_view_all_nodes()
  3. 4.7.x modules/node.module \node_access_view_all_nodes()
  4. 5.x modules/node/node.module \node_access_view_all_nodes()
  5. 7.x modules/node/node.module \node_access_view_all_nodes()
  6. 8.9.x core/modules/node/node.module \node_access_view_all_nodes()
  7. 9 core/modules/node/node.module \node_access_view_all_nodes()

Determine whether the user has a global viewing grant for all nodes.

Related topics

File

modules/node/node.module, line 2169
The core that allows content to be submitted to the site. Modules and scripts may programmatically submit nodes using the usual form API pattern.

Code

function node_access_view_all_nodes() {
  static $access;
  if (!isset($access)) {
    $grants = array();
    foreach (node_access_grants('view') as $realm => $gids) {
      foreach ($gids as $gid) {
        $grants[] = "(gid = {$gid} AND realm = '{$realm}')";
      }
    }
    $grants_sql = '';
    if (count($grants)) {
      $grants_sql = 'AND (' . implode(' OR ', $grants) . ')';
    }
    $sql = "SELECT COUNT(*) FROM {node_access} WHERE nid = 0 {$grants_sql} AND grant_view >= 1";
    $result = db_query($sql);
    $access = db_result($result);
  }
  return $access;
}