diff --git a/core/includes/common.inc b/core/includes/common.inc index b4012d8287c9d77bb381d53581ee0c0ec8e5c909..9da67ac903120c2b21e573d4708dad224def25fb 100644 --- a/core/includes/common.inc +++ b/core/includes/common.inc @@ -7367,11 +7367,7 @@ function drupal_flush_all_caches() { system_rebuild_theme_data(); drupal_theme_rebuild(); - // @todo D8: Split cache flushing from rebuilding. - // @see http://drupal.org/node/996236 - if (module_exists('node')) { - node_types_rebuild(); - } + node_types_rebuild(); // node_menu() defines menu items based on node types so it needs to come // after node types are rebuilt. menu_rebuild(); diff --git a/core/includes/module.inc b/core/includes/module.inc index 748e792749b269e93469462ba5b2725b01e8becf..221ad605a4ea1d9a03926428652cde9da74e9134 100644 --- a/core/includes/module.inc +++ b/core/includes/module.inc @@ -520,6 +520,11 @@ function module_disable($module_list, $disable_dependents = TRUE) { foreach ($module_list as $module) { if (module_exists($module)) { + // Check if node_access table needs rebuilding. + if (!node_access_needs_rebuild() && module_hook($module, 'node_grants')) { + node_access_needs_rebuild(TRUE); + } + module_load_install($module); module_invoke($module, 'disable'); db_update('system') @@ -544,6 +549,12 @@ function module_disable($module_list, $disable_dependents = TRUE) { registry_update(); _system_update_bootstrap_status(); } + + // If there remains no more node_access module, rebuilding will be + // straightforward, we can do it right now. + if (node_access_needs_rebuild() && count(module_implements('node_grants')) == 0) { + node_access_rebuild(); + } } /** diff --git a/core/includes/path.inc b/core/includes/path.inc index 9ae18754827927c31f3531593d12ed492f4a5d6d..1fac2352140c180bbf9da662806da8b4745796aa 100644 --- a/core/includes/path.inc +++ b/core/includes/path.inc @@ -16,7 +16,7 @@ function drupal_path_initialize() { // Ensure $_GET['q'] is set before calling drupal_normal_path(), to support // path caching with hook_url_inbound_alter(). if (empty($_GET['q'])) { - $_GET['q'] = variable_get('site_frontpage', 'user'); + $_GET['q'] = variable_get('site_frontpage', 'node'); } $_GET['q'] = drupal_get_normal_path($_GET['q']); } @@ -292,7 +292,7 @@ function drupal_is_front_page() { if (!isset($is_front_page)) { // As drupal_path_initialize updates $_GET['q'] with the 'site_frontpage' path, // we can check it against the 'site_frontpage' variable. - $is_front_page = ($_GET['q'] == variable_get('site_frontpage', 'user')); + $is_front_page = ($_GET['q'] == variable_get('site_frontpage', 'node')); } return $is_front_page; @@ -323,7 +323,7 @@ function drupal_match_path($path, $patterns) { $replacements = array( '|', '.*', - '\1' . preg_quote(variable_get('site_frontpage', 'user'), '/') . '\2' + '\1' . preg_quote(variable_get('site_frontpage', 'node'), '/') . '\2' ); $patterns_quoted = preg_quote($patterns, '/'); $regexps[$patterns] = '/^(' . preg_replace($to_replace, $replacements, $patterns_quoted) . ')$/'; diff --git a/core/modules/book/book.info b/core/modules/book/book.info index f370800e8318d9732fd9cee5fb1536ac8ebe1c61..15984ad1476fccaf2dbd57d6f8f69c55fcd154f5 100644 --- a/core/modules/book/book.info +++ b/core/modules/book/book.info @@ -3,7 +3,6 @@ description = Allows users to create and organize related content in an outline. package = Core version = VERSION core = 8.x -dependencies[] = node files[] = book.test configure = admin/content/book/settings stylesheets[all][] = book.theme.css diff --git a/core/modules/comment/comment.info b/core/modules/comment/comment.info index db6dc2c0d9a919c85b22c8349e76c15bc011cf30..606f46d5c89a03fdbd68582d2b4fede26f480b95 100644 --- a/core/modules/comment/comment.info +++ b/core/modules/comment/comment.info @@ -3,7 +3,6 @@ description = Allows users to comment on and discuss published content. package = Core version = VERSION core = 8.x -dependencies[] = node dependencies[] = text dependencies[] = entity files[] = comment.entity.inc diff --git a/core/modules/forum/forum.info b/core/modules/forum/forum.info index f202f9e0d57d9ff6879ac201ec1069ff7cebd93d..cb6e3e76e19c03110f94ae2ecc3d8d70bd9e3275 100644 --- a/core/modules/forum/forum.info +++ b/core/modules/forum/forum.info @@ -1,6 +1,5 @@ name = Forum description = Provides discussion forums. -dependencies[] = node dependencies[] = taxonomy dependencies[] = comment package = Core diff --git a/core/modules/help/help.module b/core/modules/help/help.module index 6f7322e6538f35abd809d8aa4223233493586e4b..773a52df98fe711909d25d1a196067cc6d6a5c81 100644 --- a/core/modules/help/help.module +++ b/core/modules/help/help.module @@ -43,10 +43,7 @@ function help_help($path, $arg) { $output .= '<li>' . t('<strong>Configure your website</strong> Once logged in, visit the <a href="@admin">administration section</a>, where you can <a href="@config">customize and configure</a> all aspects of your website.', array('@admin' => url('admin'), '@config' => url('admin/config'))) . '</li>'; $output .= '<li>' . t('<strong>Enable additional functionality</strong> Next, visit the <a href="@modules">module list</a> and enable features which suit your specific needs. You can find additional modules in the <a href="@download_modules">Drupal modules download section</a>.', array('@modules' => url('admin/modules'), '@download_modules' => 'http://drupal.org/project/modules')) . '</li>'; $output .= '<li>' . t('<strong>Customize your website design</strong> To change the "look and feel" of your website, visit the <a href="@themes">themes section</a>. You may choose from one of the included themes or download additional themes from the <a href="@download_themes">Drupal themes download section</a>.', array('@themes' => url('admin/appearance'), '@download_themes' => 'http://drupal.org/project/themes')) . '</li>'; - // Display a link to the create content page if Node module is enabled. - if (module_exists('node')) { - $output .= '<li>' . t('<strong>Start posting content</strong> Finally, you can <a href="@content">add new content</a> for your website.', array('@content' => url('node/add'))) . '</li>'; - } + $output .= '<li>' . t('<strong>Start posting content</strong> Finally, you can <a href="@content">add new content</a> for your website.', array('@content' => url('node/add'))) . '</li>'; $output .= '</ol>'; $output .= '<p>' . t('For more information, refer to the specific topics listed in the next section or to the <a href="@handbook">online Drupal handbooks</a>. You may also post at the <a href="@forum">Drupal forum</a> or view the wide range of <a href="@support">other support options</a> available.', array('@help' => url('admin/help'), '@handbook' => 'http://drupal.org/handbooks', '@forum' => 'http://drupal.org/forum', '@support' => 'http://drupal.org/support')) . '</p>'; return $output; diff --git a/core/modules/node/node.info b/core/modules/node/node.info index 33b5dd2457b14c98bf5da9b5dcf34472b46c2f0e..2e410ed7a4b7298704f2e13bc09317fbda429648 100644 --- a/core/modules/node/node.info +++ b/core/modules/node/node.info @@ -5,6 +5,7 @@ version = VERSION core = 8.x files[] = node.module files[] = node.test +required = TRUE dependencies[] = entity configure = admin/structure/types stylesheets[all][] = node.css diff --git a/core/modules/node/node.module b/core/modules/node/node.module index a182e90b20913229cf327641990e89832a91a859..57607cd8270327b5cd9f17309556297b6f0f9ec4 100644 --- a/core/modules/node/node.module +++ b/core/modules/node/node.module @@ -4079,28 +4079,6 @@ function node_modules_enabled($modules) { } } -/** - * Implements hook_modules_disabled(). - */ -function node_modules_disabled($modules) { - // Check whether any of the disabled modules implemented hook_node_grants(), - // in which case the node access table needs to be rebuilt. - foreach ($modules as $module) { - // At this point, the module is already disabled, but its code is still - // loaded in memory. Module functions must no longer be called. We only - // check whether a hook implementation function exists and do not invoke it. - if (!node_access_needs_rebuild() && module_hook($module, 'node_grants')) { - node_access_needs_rebuild(TRUE); - } - } - - // If there remains no more node_access module, rebuilding will be - // straightforward, we can do it right now. - if (node_access_needs_rebuild() && count(module_implements('node_grants')) == 0) { - node_access_rebuild(); - } -} - /** * Controller class for nodes. * diff --git a/core/modules/overlay/overlay.module b/core/modules/overlay/overlay.module index 8f62c017a73fb44b7c9910b52d4174ffd8fc9221..5433d3e5042e644dcfbcf2992181de9ad2a3c5cf 100644 --- a/core/modules/overlay/overlay.module +++ b/core/modules/overlay/overlay.module @@ -635,7 +635,7 @@ function overlay_overlay_parent_initialize() { // Let the client side know which paths are administrative. $paths = path_get_admin_paths(); foreach ($paths as &$type) { - $type = str_replace('<front>', variable_get('site_frontpage', 'user'), $type); + $type = str_replace('<front>', variable_get('site_frontpage', 'node'), $type); } drupal_add_js(array('overlay' => array('paths' => $paths)), 'setting'); // Pass along the Ajax callback for rerendering sections of the parent window. diff --git a/core/modules/poll/poll.info b/core/modules/poll/poll.info index dbdd6213b03db651d4e2a36bd3a2f89b21a635e5..de6ac250cee65412a8ccc11b177d2ad5d2c5b198 100644 --- a/core/modules/poll/poll.info +++ b/core/modules/poll/poll.info @@ -3,6 +3,5 @@ description = Allows your site to capture votes on different topics in the form package = Core version = VERSION core = 8.x -dependencies[] = node files[] = poll.test stylesheets[all][] = poll.css diff --git a/core/modules/rdf/tests/rdf_test.info b/core/modules/rdf/tests/rdf_test.info index 87a6dac5ff0ae77b7d4824cd808d1bd78eb0bb3c..b168815f8f565d75f58f23fae7c7dbe005587dfa 100644 --- a/core/modules/rdf/tests/rdf_test.info +++ b/core/modules/rdf/tests/rdf_test.info @@ -4,4 +4,3 @@ package = Testing version = VERSION core = 8.x hidden = TRUE -dependencies[] = rdf diff --git a/core/modules/shortcut/shortcut.install b/core/modules/shortcut/shortcut.install index 7aee9c9ca0686ddf5a18538036b6d0db968c586f..60ee6be8ddf02a14072edaded0c989b8056b264c 100644 --- a/core/modules/shortcut/shortcut.install +++ b/core/modules/shortcut/shortcut.install @@ -13,19 +13,18 @@ function shortcut_install() { // Create an initial default shortcut set. $shortcut_set = new stdClass(); $shortcut_set->title = $t('Default'); - $shortcut_set->links = array(); - if (module_exists('node')) { - $shortcut_set->links[] = array( + $shortcut_set->links = array( + array( 'link_path' => 'node/add', 'link_title' => $t('Add content'), 'weight' => -20, - ); - $shortcut_set->links[] = array( + ), + array( 'link_path' => 'admin/content', 'link_title' => $t('Find content'), 'weight' => -19, - ); - } + ), + ); // If Drupal is being installed, rebuild the menu before saving the shortcut // set, to make sure the links defined above can be correctly saved. (During // installation, the menu might not have been built at all yet, or it might diff --git a/core/modules/simpletest/tests/database_test.test b/core/modules/simpletest/tests/database_test.test index 934847f13bdbfa891360096cfe6e66050fff28ab..6e55fbdf0f8ace853818c6a6090ecf2fcacd3894 100644 --- a/core/modules/simpletest/tests/database_test.test +++ b/core/modules/simpletest/tests/database_test.test @@ -19,12 +19,7 @@ class DatabaseTestCase extends DrupalWebTestCase { protected $profile = 'testing'; function setUp() { - $modules = func_get_args(); - if (isset($modules[0]) && is_array($modules[0])) { - $modules = $modules[0]; - } - $modules[] = 'database_test'; - parent::setUp($modules); + parent::setUp('database_test'); $schema['test'] = drupal_get_schema('test'); $schema['test_people'] = drupal_get_schema('test_people'); @@ -382,6 +377,10 @@ class DatabaseFetch2TestCase extends DatabaseTestCase { ); } + function setUp() { + parent::setUp(); + } + // Confirm that we can fetch a record into an indexed array explicitly. function testQueryFetchNum() { $records = array(); @@ -2219,14 +2218,24 @@ class DatabaseSelectComplexTestCase2 extends DatabaseTestCase { } function setUp() { - parent::setUp(array('node_access_test')); + DrupalWebTestCase::setUp('database_test', 'node_access_test'); + + $schema['test'] = drupal_get_schema('test'); + $schema['test_people'] = drupal_get_schema('test_people'); + $schema['test_one_blob'] = drupal_get_schema('test_one_blob'); + $schema['test_two_blobs'] = drupal_get_schema('test_two_blobs'); + $schema['test_task'] = drupal_get_schema('test_task'); + + $this->installTables($schema); + + $this->addSampleData(); } /** * Test that we can join on a query. */ function testJoinSubquery() { - $acct = $this->drupalCreateUser(); + $acct = $this->drupalCreateUser(array('access content')); $this->drupalLogin($acct); $query = db_select('test_task', 'tt', array('target' => 'slave')); @@ -2745,10 +2754,6 @@ class DatabaseRegressionTestCase extends DatabaseTestCase { ); } - function setUp() { - parent::setUp(array('node')); - } - /** * Regression test for #310447. * @@ -3040,6 +3045,10 @@ class DatabaseBasicSyntaxTestCase extends DatabaseTestCase { ); } + function setUp() { + parent::setUp('database_test'); + } + /** * Test for string concatenation. */ @@ -3137,6 +3146,10 @@ class DatabaseInvalidDataTestCase extends DatabaseTestCase { ); } + function setUp() { + parent::setUp('database_test'); + } + /** * Traditional SQL database systems abort inserts when invalid data is encountered. */ @@ -3206,6 +3219,10 @@ class DatabaseQueryTestCase extends DatabaseTestCase { ); } + function setUp() { + parent::setUp('database_test'); + } + /** * Test that we can specify an array of values in the query by simply passing in an array. */ diff --git a/core/modules/simpletest/tests/theme.test b/core/modules/simpletest/tests/theme.test index 0482482a199ae4ddb2022ad91e72df724f9d88df..b47e37978212e330422d7bd93c2a559e659bbdad 100644 --- a/core/modules/simpletest/tests/theme.test +++ b/core/modules/simpletest/tests/theme.test @@ -66,8 +66,7 @@ class ThemeUnitTest extends DrupalWebTestCase { $q = $_GET['q']; // Set $_GET['q'] to node because theme_get_suggestions() will query it to // see if we are on the front page. - variable_set('site_frontpage', 'node'); - $_GET['q'] = 'node'; + $_GET['q'] = variable_get('site_frontpage', 'node'); $suggestions = theme_get_suggestions(explode('/', $_GET['q']), 'page'); // Set it back to not annoy the batch runner. $_GET['q'] = $q; diff --git a/core/modules/simpletest/tests/theme_test.module b/core/modules/simpletest/tests/theme_test.module index 2a2552aede40640e53c3d8937e1ec93e96c9ef36..400902d3ac7b205d88d6b5b2591711ca24defe50 100644 --- a/core/modules/simpletest/tests/theme_test.module +++ b/core/modules/simpletest/tests/theme_test.module @@ -26,14 +26,14 @@ function theme_test_menu() { $items['theme-test/suggestion'] = array( 'title' => 'Suggestion', 'page callback' => '_theme_test_suggestion', - 'access callback' => TRUE, + 'access arguments' => array('access content'), 'theme callback' => '_theme_custom_theme', 'type' => MENU_CALLBACK, ); $items['theme-test/alter'] = array( 'title' => 'Suggestion', 'page callback' => '_theme_test_alter', - 'access callback' => TRUE, + 'access arguments' => array('access content'), 'theme callback' => '_theme_custom_theme', 'type' => MENU_CALLBACK, ); diff --git a/core/modules/syslog/syslog.module b/core/modules/syslog/syslog.module index 7c7bf40b74b7491a36f465718fcd4e360f6d2ea1..c4ee382528892a67980e328b83aefa63596427d9 100644 --- a/core/modules/syslog/syslog.module +++ b/core/modules/syslog/syslog.module @@ -6,15 +6,6 @@ */ if (defined('LOG_LOCAL0')) { - /** - * Sets the proper logging facility. - * - * Note that LOG_LOCAL0 through LOG_LOCAL7 are not available on Windows, so we - * check for availability. If LOG_LOCAL0 is defined by the PHP environment, we - * set that as the default; if not, we use LOG_USER. - * - * @see http://php.net/manual/function.syslog.php - */ define('DEFAULT_SYSLOG_FACILITY', LOG_LOCAL0); } else { diff --git a/core/modules/system/system.admin.inc b/core/modules/system/system.admin.inc index 6c1a9ab5597f9b7822d38d3734bd367ff4718b56..6dca80b88b723940fb66a0b15be66f71db6ef9d6 100644 --- a/core/modules/system/system.admin.inc +++ b/core/modules/system/system.admin.inc @@ -1487,7 +1487,7 @@ function system_site_information_settings() { $form['front_page']['site_frontpage'] = array( '#type' => 'textfield', '#title' => t('Default front page'), - '#default_value' => (variable_get('site_frontpage') != 'user' ? drupal_get_path_alias(variable_get('site_frontpage', 'user')) : ''), + '#default_value' => (variable_get('site_frontpage')!='node'?drupal_get_path_alias(variable_get('site_frontpage', 'node')):''), '#size' => 40, '#description' => t('Optionally, specify a relative URL to display as the front page. Leave blank to display the default content feed.'), '#field_prefix' => url(NULL, array('absolute' => TRUE)) . (variable_get('clean_url', 0) ? '' : '?q='), @@ -1497,8 +1497,8 @@ function system_site_information_settings() { '#default_value' => variable_get('default_nodes_main', 10), '#options' => drupal_map_assoc(array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30)), '#description' => t('The maximum number of posts displayed on overview pages such as the front page.'), - '#access' => (variable_get('site_frontpage') == 'node'), - ); + '#access' => (variable_get('site_frontpage')=='node'), + ); $form['error_page'] = array( '#type' => 'fieldset', '#title' => t('Error pages'), @@ -1535,8 +1535,8 @@ function system_site_information_settings_validate($form, &$form_state) { } // Check for empty front page path. if (empty($form_state['values']['site_frontpage'])) { - // Set to default "user". - form_set_value($form['front_page']['site_frontpage'], 'user', $form_state); + // Set to default "node". + form_set_value($form['front_page']['site_frontpage'], 'node', $form_state); } else { // Get the normal path of the front page. diff --git a/profiles/minimal/minimal.info b/profiles/minimal/minimal.info index f2219481d2890bc47a110689d1847ab4a552d729..c384680a3d9eb92e075954849f608e70a5c2d2a9 100644 --- a/profiles/minimal/minimal.info +++ b/profiles/minimal/minimal.info @@ -2,7 +2,6 @@ name = Minimal description = Start with only a few modules enabled. version = VERSION core = 8.x -dependencies[] = node dependencies[] = block dependencies[] = dblog files[] = minimal.profile diff --git a/profiles/minimal/minimal.install b/profiles/minimal/minimal.install index d5b85c5f23dd5fd1ed4b4345e9c85c5be76922d2..6c56aecd2e85d9850501196954341f77fc6cc867 100644 --- a/profiles/minimal/minimal.install +++ b/profiles/minimal/minimal.install @@ -72,9 +72,6 @@ function minimal_install() { } $query->execute(); - // Set front page to "node". - variable_set('site_frontpage', 'node'); - // Allow visitor account creation, but with administrative approval. variable_set('user_register', USER_REGISTER_VISITORS_ADMINISTRATIVE_APPROVAL); diff --git a/profiles/standard/standard.info b/profiles/standard/standard.info index e21c18c89e2b0fb5a3f976332842135b1b33fc4b..56e43086a839dd44f6e1cda3e31d3f3901130c2e 100644 --- a/profiles/standard/standard.info +++ b/profiles/standard/standard.info @@ -2,7 +2,6 @@ name = Standard description = Install with commonly used features pre-configured. version = VERSION core = 8.x -dependencies[] = node dependencies[] = block dependencies[] = color dependencies[] = comment diff --git a/profiles/standard/standard.install b/profiles/standard/standard.install index f8a73ce66da8ef5b7bfe94687cbebe709e760d29..9195ad949e1daf53eafda9adffeb855760965c39 100644 --- a/profiles/standard/standard.install +++ b/profiles/standard/standard.install @@ -199,9 +199,6 @@ function standard_install() { } $query->execute(); - // Set front page to "node". - variable_set('site_frontpage', 'node'); - // Insert default pre-defined node types into the database. For a complete // list of available node type attributes, refer to the node type API // documentation at: http://api.drupal.org/api/HEAD/function/hook_node_info. diff --git a/profiles/testing/testing.install b/profiles/testing/testing.install index 19092d424020deedd4c90c3168c6f382390b753d..192704d75191541436c4fde16a004a86de2460e2 100644 --- a/profiles/testing/testing.install +++ b/profiles/testing/testing.install @@ -8,4 +8,8 @@ function testing_install() { // Allow visitor account creation, but with administrative approval. variable_set('user_register', USER_REGISTER_VISITORS_ADMINISTRATIVE_APPROVAL); + + // Enable default permissions for system roles. + user_role_grant_permissions(DRUPAL_ANONYMOUS_RID, array('access content')); + user_role_grant_permissions(DRUPAL_AUTHENTICATED_RID, array('access content')); }