You are here

function node_access_rebuild_progressive_trigger in Node Access Rebuild Progressive 7

Same name and namespace in other branches
  1. 8 node_access_rebuild_progressive.module \node_access_rebuild_progressive_trigger()
  2. 2.x node_access_rebuild_progressive.module \node_access_rebuild_progressive_trigger()

Initiate the full rebuild.

2 calls to node_access_rebuild_progressive_trigger()
drush_node_access_rebuild_progressive_rebuild in ./node_access_rebuild_progressive.drush.inc
Rebuilds the node access grants table.
node_access_rebuild_progressive_cron in ./node_access_rebuild_progressive.module
Implements hook_cron().

File

./node_access_rebuild_progressive.module, line 78
Provides ability to rebuild node access silently.

Code

function node_access_rebuild_progressive_trigger() {

  // Prevents default message/behaviour.
  node_access_needs_rebuild(FALSE);

  // Add default grants in the unlikely case
  // no modules implement node_grants anymore.
  if (!count(module_implements('node_grants'))) {
    node_access_rebuild_progressive_set_default();
    return node_access_rebuild_progressive_finished();
  }

  // Clean up possible mismatches.
  db_query("DELETE FROM {node_access} WHERE nid NOT IN (SELECT nid FROM {node})");

  // We only need the current one, nodes created afterward would get processed
  // at save time.
  $highest = db_query("SELECT nid FROM {node} ORDER BY nid DESC LIMIT 0,1")
    ->fetchField();
  $count = db_query("SELECT count(nid) FROM {node}")
    ->fetchField();
  variable_set('node_access_rebuild_progressive_current', $highest + 1);
  watchdog('node_access_rebuild_progressive', '%count nodes queued for node access rebuild.', array(
    '%count' => $count,
  ), WATCHDOG_INFO);
}