You are here

function content_access_node_access_records in Content Access 5

Same name and namespace in other branches
  1. 8 content_access.module \content_access_node_access_records()
  2. 6 content_access.module \content_access_node_access_records()
  3. 7 content_access.module \content_access_node_access_records()

File

./content_access.module, line 298

Code

function content_access_node_access_records($node, $optimize = TRUE) {
  if (content_access_disabling()) {
    return;
  }

  // Apply per node settings if necessary.
  if (content_access_get_settings('per_node', $node->type)) {
    $grants = array();
    foreach (array(
      'view',
      'update',
      'delete',
    ) as $op) {
      foreach (content_access_per_node_setting($op, $node) as $rid) {
        $grants[$rid]['grant_' . $op] = 1;
      }
    }
    foreach ($grants as $rid => $grant) {
      $grants[$rid] = content_access_proccess_grant($grant, $rid, $node);
    }
  }
  else {

    // Apply the content type defaults.
    $grants = content_access_get_default_grant($node);
  }
  if (empty($grants)) {

    // This means we grant no access.
    $grants[] = array(
      'grant_view' => 0,
      'realm' => 'content_access_rid',
      'gid' => 0,
    );
  }
  else {
    if ($optimize) {
      content_access_optimize_grants($grants, $node);
    }
  }
  return $grants;
}