MDL-73397 adminpresets: Move sensiblesettings to core

The sensiblesettings setting has been moved from tool_admin_presets
to adminpresets component where it belongs, in order for being able
to use it from the API to decide whether sensible settings should
be included when exporting them.
This commit is contained in:
Sara Arjona 2021-12-23 12:10:00 +01:00 committed by Amaia Anabitarte
parent 8bf52e3195
commit 1f47ef1a34
7 changed files with 31 additions and 27 deletions

View file

@ -141,11 +141,24 @@ if ($hassiteconfig) { // speedup for non-admins, add all caps used on this page
$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));
$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'));

View file

@ -84,8 +84,6 @@ $string['rollbackfailures'] = 'The following settings can not be restored, the a
$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.

View file

@ -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));
}

View file

@ -434,7 +434,7 @@ class manager {
$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) {

View file

@ -47,6 +47,8 @@ $string['privacy:metadata:adminpresets_app'] = 'The configuration presets that h
$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.';

View file

@ -3516,5 +3516,16 @@ privatefiles,moodle|/user/files.php';
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;
}

View file

@ -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