diff --git a/admin/settings/security.php b/admin/settings/security.php index 91fb9a2ccedd0..aa20b5e7834ad 100644 --- a/admin/settings/security.php +++ b/admin/settings/security.php @@ -141,10 +141,23 @@ $temp->add(new admin_setting_configcheckbox('emailchangeconfirmation', new lang_string('emailchangeconfirmation', 'admin'), new lang_string('configemailchangeconfirmation', 'admin'), 1)); $temp->add(new admin_setting_configselect('rememberusername', new lang_string('rememberusername','admin'), new lang_string('rememberusername_desc','admin'), 2, array(1=>new lang_string('yes'), 0=>new lang_string('no'), 2=>new lang_string('optional')))); $temp->add(new admin_setting_configcheckbox('strictformsrequired', new lang_string('strictformsrequired', 'admin'), new lang_string('configstrictformsrequired', 'admin'), 0)); - $ADMIN->add('security', $temp); - + $temp->add(new admin_setting_heading('adminpresets', new lang_string('siteadminpresetspluginname', 'core_adminpresets'), '')); + $sensiblesettingsdefault = 'recaptchapublickey@@none, recaptchaprivatekey@@none, googlemapkey3@@none, '; + $sensiblesettingsdefault .= 'secretphrase@@url, cronremotepassword@@none, smtpuser@@none, '; + $sensiblesettingsdefault .= 'smtppass@none, proxypassword@@none, quizpassword@@quiz, allowedip@@none, blockedip@@none, '; + $sensiblesettingsdefault .= 'dbpass@@logstore_database, messageinbound_hostpass@@none, '; + $sensiblesettingsdefault .= 'bind_pw@@auth_cas, pass@@auth_db, bind_pw@@auth_ldap, '; + $sensiblesettingsdefault .= 'dbpass@@enrol_database, bind_pw@@enrol_ldap, '; + $sensiblesettingsdefault .= 'server_password@@search_solr, ssl_keypassword@@search_solr, '; + $sensiblesettingsdefault .= 'alternateserver_password@@search_solr, alternatessl_keypassword@@search_solr, '; + $sensiblesettingsdefault .= 'test_password@@cachestore_redis, password@@mlbackend_python'; + $temp->add(new admin_setting_configtextarea('adminpresets/sensiblesettings', + get_string('sensiblesettings', 'core_adminpresets'), + get_string('sensiblesettingstext', 'core_adminpresets'), + $sensiblesettingsdefault, PARAM_TEXT)); + $ADMIN->add('security', $temp); // "httpsecurity" settingpage $temp = new admin_settingpage('httpsecurity', new lang_string('httpsecurity', 'admin')); diff --git a/admin/tool/admin_presets/lang/en/tool_admin_presets.php b/admin/tool/admin_presets/lang/en/tool_admin_presets.php index 338bd4f87937e..570f7c917f6ff 100644 --- a/admin/tool/admin_presets/lang/en/tool_admin_presets.php +++ b/admin/tool/admin_presets/lang/en/tool_admin_presets.php @@ -84,8 +84,6 @@ $string['rollbackresults'] = 'Settings successfully restored'; $string['rollbackshow'] = '{$a} preset version history'; $string['selectfile'] = 'Select file'; -$string['sensiblesettings'] = 'Settings with passwords'; -$string['sensiblesettingstext'] = 'Settings with passwords or other sensitive information can be excluded when creating a site admin preset. Enter additional settings with format SETTINGNAME@@PLUGINNAME separated by commas.'; $string['settingname'] = 'Setting name'; $string['settingsapplied'] = 'Setting changes'; $string['settingsappliednotification'] = 'Review the following setting changes which have been applied. diff --git a/admin/tool/admin_presets/settings.php b/admin/tool/admin_presets/settings.php index 7dc63082f0fcc..25a7e7c8ba4e6 100644 --- a/admin/tool/admin_presets/settings.php +++ b/admin/tool/admin_presets/settings.php @@ -26,27 +26,7 @@ defined('MOODLE_INTERNAL') || die(); if ($hassiteconfig) { - $ADMIN->add('root', new admin_externalpage('tool_admin_presets', get_string('pluginname', 'tool_admin_presets'), new moodle_url('/admin/tool/admin_presets/index.php'))); - - $settings = new admin_settingpage('tool_admin_presets_settings', get_string('pluginname', 'tool_admin_presets')); - $ADMIN->add('tools', $settings); - - $sensiblesettingsdefault = 'recaptchapublickey@@none, recaptchaprivatekey@@none, googlemapkey3@@none, '; - $sensiblesettingsdefault .= 'secretphrase@@url, cronremotepassword@@none, smtpuser@@none, '; - $sensiblesettingsdefault .= 'smtppass@none, proxypassword@@none, quizpassword@@quiz, allowedip@@none, blockedip@@none, '; - $sensiblesettingsdefault .= 'dbpass@@logstore_database, messageinbound_hostpass@@none, '; - $sensiblesettingsdefault .= 'bind_pw@@auth_cas, pass@@auth_db, bind_pw@@auth_ldap, '; - $sensiblesettingsdefault .= 'dbpass@@enrol_database, bind_pw@@enrol_ldap, '; - $sensiblesettingsdefault .= 'server_password@@search_solr, ssl_keypassword@@search_solr, '; - $sensiblesettingsdefault .= 'alternateserver_password@@search_solr, alternatessl_keypassword@@search_solr, '; - $sensiblesettingsdefault .= 'test_password@@cachestore_redis, password@@mlbackend_python'; - - $settings->add(new admin_setting_configtextarea('tool_admin_presets/sensiblesettings', - get_string('sensiblesettings', 'tool_admin_presets'), - get_string('sensiblesettingstext', 'tool_admin_presets'), - $sensiblesettingsdefault, PARAM_TEXT)); - } diff --git a/adminpresets/classes/manager.php b/adminpresets/classes/manager.php index 2f03e902cc89b..1a430ddec2fa3 100644 --- a/adminpresets/classes/manager.php +++ b/adminpresets/classes/manager.php @@ -434,7 +434,7 @@ public function export_preset(stdClass $data): array { $sitesettings = $this->get_site_settings(); // Sensible settings. - $sensiblesettings = explode(',', str_replace(' ', '', get_config('tool_admin_presets', 'sensiblesettings'))); + $sensiblesettings = explode(',', str_replace(' ', '', get_config('adminpresets', 'sensiblesettings'))); $sensiblesettings = array_combine($sensiblesettings, $sensiblesettings); foreach ($sitesettings as $plugin => $pluginsettings) { foreach ($pluginsettings as $settingname => $sitesetting) { diff --git a/lang/en/adminpresets.php b/lang/en/adminpresets.php index 1dacabc0b1959..6bfd529f01a21 100644 --- a/lang/en/adminpresets.php +++ b/lang/en/adminpresets.php @@ -47,6 +47,8 @@ $string['privacy:metadata:adminpresets_app:adminpresetid'] = 'The id of the preset applied.'; $string['privacy:metadata:adminpresets_app:time'] = 'The time that the preset was applied.'; $string['privacy:metadata:adminpresets_app:userid'] = 'The user who applied the preset.'; +$string['sensiblesettings'] = 'Settings with passwords'; +$string['sensiblesettingstext'] = 'Settings with passwords or other sensitive information can be excluded when creating a site admin preset. Enter additional settings with format SETTINGNAME@@PLUGINNAME separated by commas.'; $string['siteadminpresetspluginname'] = 'Site admin presets'; $string['starterpreset'] = 'Starter'; $string['starterpresetdescription'] = 'Moodle with all of the most popular features, including Assignment, Feedback, Forum, H5P, Quiz and Completion tracking.'; diff --git a/lib/db/upgrade.php b/lib/db/upgrade.php index 12a80c4dc12ff..edeeffcbed995 100644 --- a/lib/db/upgrade.php +++ b/lib/db/upgrade.php @@ -3516,5 +3516,16 @@ function xmldb_main_upgrade($oldversion) { upgrade_main_savepoint(true, 2021123000.01); } + if ($oldversion < 2021123000.02) { + // If exists, migrate sensiblesettings admin settings from tool_admin_preset to adminpresets. + if (get_config('tool_admin_presets', 'sensiblesettings') !== false) { + set_config('sensiblesettings', get_config('tool_admin_presets', 'sensiblesettings'), 'adminpresets'); + unset_config('sensiblesettings', 'tool_admin_presets'); + } + + // Main savepoint reached. + upgrade_main_savepoint(true, 2021123000.02); + } + return true; } diff --git a/version.php b/version.php index d2742be3e0bdb..f6ae56d7471de 100644 --- a/version.php +++ b/version.php @@ -29,7 +29,7 @@ defined('MOODLE_INTERNAL') || die(); -$version = 2021123000.01; // YYYYMMDD = weekly release date of this DEV branch. +$version = 2021123000.02; // YYYYMMDD = weekly release date of this DEV branch. // RR = release increments - 00 in DEV branches. // .XX = incremental changes. $release = '4.0dev+ (Build: 20211230)'; // Human-friendly version name