Index: modules/node/node.module =================================================================== RCS file: /cvs/drupal/drupal/modules/node/node.module,v retrieving revision 1.682 diff -u -p -r1.682 node.module --- modules/node/node.module 22 Aug 2006 11:13:04 -0000 1.682 +++ modules/node/node.module 22 Aug 2006 21:50:17 -0000 @@ -1147,7 +1147,8 @@ function node_menu($may_cache) { // There is no need to rebuild node_access if there is only 1 record in the table (the default configuration). if (db_result(db_query('SELECT COUNT(*) FROM {node_access}')) > 1) { $items[] = array('path' => 'admin/settings/node-access', 'title' => t('node access'), - 'callback' => 'node_access_rebuild', + 'callback' => 'drupal_get_form', + 'callback arguments' => array('node_access_rebuild_page'), 'access' => user_access('administer nodes')); } } @@ -2799,10 +2800,10 @@ function node_access_write_grants($node, } } -function node_access_rebuild() { +function node_access_rebuild_page() { $form['markup'] = array( '#prefix' => '

', - '#value' => t('Rebuilding the node_access table is necessary immediately after uninstalling a module that utilizes the node_access system. Each node will have its access control recalculated. This may take a while if your site has many nodes.'), + '#value' => t('Rebuilding the node_access table is only necessary when something has happened to your system to cause the table to get out of sync. This is most likely to happen when modules are updated to newer code, or modules using the system were removed unexpectedly.'), '#suffix' => '

', ); $form['submit'] = array( @@ -2815,11 +2816,15 @@ function node_access_rebuild() { /** * rebuild the node access database */ -function node_access_rebuild_submit() { + function node_access_rebuild_page_submit() { _node_access_rebuild(); drupal_set_message(t('The node access table has been rebuilt.')); } +/** + * Rebuild the node access database. This is occasionally needed by modules + * that make system-wide changes to access levels. + */ function _node_access_rebuild() { db_query("DELETE FROM {node_access}"); // only recalculate if site is using a node_access module