Commit 5f09149c authored by Gábor Hojtsy's avatar Gábor Hojtsy

#178581 by lot of contributors: opt-in for update module on install and update...

#178581 by lot of contributors: opt-in for update module on install and update to avoid any privacy concerns
parent 235621a0
......@@ -654,11 +654,8 @@ function install_tasks($profile, $task) {
$form['#build_id'] = $form_build_id;
drupal_prepare_form('install_configure_form', $form, $form_state);
// In order to find out if the form was successfully submitted or not,
// we do a little song and dance to set the form to 'programmed' and check
// to make sure this is really the form being submitted. It'd better be.
// Is the form submitted?
if (!empty($_POST) && $_POST['form_id'] == 'install_configure_form') {
$form['#programmed'] = TRUE;
$form['#post'] = $_POST;
}
else {
......@@ -945,11 +942,22 @@ function install_configure_form() {
'#weight' => 10,
);
$form['server_settings']['update_status_module'] = array(
'#type' => 'checkboxes',
'#title' => st('Update notifications'),
'#options' => array(1 => st('Check for updates automatically')),
'#default_value' => array(1),
'#description' => st('Drupal can check periodically for important bug fixes and security releases. To do this, your site will send anonymous information on its installed components to drupal.org. It is <strong>highly recommended</strong> that you enable this option for your site\'s security. For more information please read the <a href="@update">update notification information</a>.', array('@update' => 'http://drupal.org/handbook/modules/update')),
'#weight' => 15,
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => st('Save'),
'#weight' => 15,
);
$form['#redirect'] = FALSE;
$hook_form_alter = $_GET['profile'] .'_form_alter';
if (function_exists($hook_form_alter)) {
$hook_form_alter($form, 'install_configure');
......@@ -976,6 +984,11 @@ function install_configure_form_submit($form, &$form_state) {
variable_set('site_mail', $form_state['values']['site_mail']);
variable_set('date_default_timezone', $form_state['values']['date_default_timezone']);
// Enable update.module if this option was selected.
if ($form_state['values']['update_status_module'][1]) {
drupal_install_modules(array('update'));
}
// Turn this off temporarily so that we can pass a password through.
variable_set('user_email_verification', FALSE);
$form_state['old_values'] = $form_state['values'];
......
......@@ -187,6 +187,23 @@ function system_requirements($phase) {
include_once './includes/unicode.inc';
$requirements = array_merge($requirements, unicode_requirements());
// Check for update status module.
if ($phase == 'runtime') {
if (!module_exists('update')) {
$requirements['update status'] = array(
'value' => $t('Not enabled'),
'severity' => REQUIREMENT_ERROR,
'description' => $t('Update notifications are not enabled. It is <strong>highly recommended</strong> that you enable the update status module from the <a href="@module">module administration page</a> in order to stay up-to-date on new releases. For more information please read the <a href="@update">Update status handbook page</a>.', array('@update' => 'http://drupal.org/handbook/modules/update', '@module' => url('admin/build/modules'))),
);
}
else {
$requirements['update status'] = array(
'value' => $t('Enabled'),
);
}
$requirements['update status']['title'] = $t('Update notifications');
}
return $requirements;
}
......@@ -4269,43 +4286,17 @@ function system_update_6025() {
}
/**
* Enable the update.module by default on sites that upgrade.
*
* This cannot just rely on update.install to install the schema. If,
* in the future, someone decides to change the schema for the
* {cache_update} table, this update would cause uncertainty in the
* state of the DB, since the effect of running this update would
* change. For example, if the schema is changed in update #6101, and
* a site upgrades direct from 5.x to 6.1, update #6026 would create
* the table with the new schema, and then update #6101 would fail,
* since it's trying to alter the old schema into the new
* schema. Therefore, we must hard-code the particular version of the
* schema we mean during update #6026, and then future upgrades that
* might attempt to modify the schema of this table will be starting
* from a known state. See http://drupal.org/node/150220 for more.
* Display warning about new Update status module.
*/
function system_update_6026() {
$ret = array();
$schema['cache_update'] = array(
'fields' => array(
'cid' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
'data' => array('type' => 'blob', 'not null' => FALSE, 'size' => 'big'),
'expire' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
'created' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
'headers' => array('type' => 'text', 'not null' => FALSE),
'serialized' => array('type' => 'int', 'size' => 'small', 'not null' => TRUE, 'default' => 0)
),
'indexes' => array('expire' => array('expire')),
'primary key' => array('cid'),
);
db_create_table($ret, 'cache_update', $schema['cache_update']);
drupal_set_installed_schema_version('update', 0);
module_enable(array('update'));
menu_rebuild();
// Notify user that new update module exists.
drupal_set_message(t('Drupal can check periodically for important bug fixes and security releases using the new update status module. This module can be turned on from the <a href="@modules">modules administration page</a>. For more information please read the <a href="@update">Update status handbook page</a>.', array('@modules' => url('admin/build/modules'), '@update' => 'http://drupal.org/handbook/modules/update')));
return $ret;
}
/**
* Add block cache.
*/
......
......@@ -71,6 +71,13 @@ function update_help($path, $arg) {
// These two pages don't need additional nagging.
break;
case 'admin/help#update':
$output = '<p>'. t("The Update status module periodically checks for new versions of your site's software (including contributed modules and themes), and alerts you to available updates.") .'</p>';
$output .= '<p>'. t('The <a href="@update-report">report of available updates</a> will alert you when new releases are available for download. You may configure options for update checking frequency and notifications at the <a href="@update-settings">Update status module settings page</a>.', array('@update-report' => url('admin/logs/updates'), '@update-settings' => url('admin/logs/updates/settings'))) .'</p>';
$output .= '<p>'. t('Please note that in order to provide this information, anonymous usage statistics are sent to drupal.org. If desired, you may disable the Update status module from the <a href="@modules">module administration page</a>.', array('@modules' => url('admin/build/modules'))) .'</p>';
$output .= '<p>'. t('For more information please read the configuration and customization handbook <a href="@update">Update status page</a>.', array('@update' => 'http://drupal.org/handbook/modules/update')) .'</p>';
return $output;
default:
// Otherwise, if we're on *any* admin page and there's a security
// update missing, print an error message about it.
......
......@@ -8,7 +8,7 @@
* An array of modules to be enabled.
*/
function default_profile_modules() {
return array('color', 'comment', 'help', 'menu', 'taxonomy', 'dblog', 'update');
return array('color', 'comment', 'help', 'menu', 'taxonomy', 'dblog');
}
/**
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment