diff --git a/core/includes/common.inc b/core/includes/common.inc
index b4012d8287c..9da67ac9031 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 748e792749b..221ad605a4e 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 9ae18754827..1fac2352140 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 f370800e831..15984ad1476 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 db6dc2c0d9a..606f46d5c89 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 f202f9e0d57..cb6e3e76e19 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 6f7322e6538..773a52df98f 100644
--- a/core/modules/help/help.module
+++ b/core/modules/help/help.module
@@ -43,10 +43,7 @@ function help_help($path, $arg) {
$output .= '
' . t('Configure your website Once logged in, visit the administration section, where you can customize and configure all aspects of your website.', array('@admin' => url('admin'), '@config' => url('admin/config'))) . '';
$output .= '' . t('Enable additional functionality Next, visit the module list and enable features which suit your specific needs. You can find additional modules in the Drupal modules download section.', array('@modules' => url('admin/modules'), '@download_modules' => 'http://drupal.org/project/modules')) . '';
$output .= '' . t('Customize your website design To change the "look and feel" of your website, visit the themes section. You may choose from one of the included themes or download additional themes from the Drupal themes download section.', array('@themes' => url('admin/appearance'), '@download_themes' => 'http://drupal.org/project/themes')) . '';
- // Display a link to the create content page if Node module is enabled.
- if (module_exists('node')) {
- $output .= '' . t('Start posting content Finally, you can add new content for your website.', array('@content' => url('node/add'))) . '';
- }
+ $output .= '' . t('Start posting content Finally, you can add new content for your website.', array('@content' => url('node/add'))) . '';
$output .= '';
$output .= '' . t('For more information, refer to the specific topics listed in the next section or to the online Drupal handbooks. You may also post at the Drupal forum or view the wide range of other support options available.', array('@help' => url('admin/help'), '@handbook' => 'http://drupal.org/handbooks', '@forum' => 'http://drupal.org/forum', '@support' => 'http://drupal.org/support')) . '
';
return $output;
diff --git a/core/modules/node/node.info b/core/modules/node/node.info
index 33b5dd2457b..2e410ed7a4b 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 a182e90b209..57607cd8270 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 8f62c017a73..5433d3e5042 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('', variable_get('site_frontpage', 'user'), $type);
+ $type = str_replace('', 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 dbdd6213b03..de6ac250cee 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 87a6dac5ff0..b168815f8f5 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 7aee9c9ca06..60ee6be8ddf 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 934847f13bd..6e55fbdf0f8 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 0482482a199..b47e3797821 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 2a2552aede4..400902d3ac7 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 7c7bf40b74b..c4ee3825288 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 6c1a9ab5597..6dca80b88b7 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 f2219481d28..c384680a3d9 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 d5b85c5f23d..6c56aecd2e8 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 e21c18c89e2..56e43086a83 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 f8a73ce66da..9195ad949e1 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 19092d42402..192704d7519 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'));
}