Skip to content

Commit

Permalink
MDL-73397 adminpresets: Move sensiblesettings to core
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
sarjona authored and Amaia Anabitarte committed Jan 4, 2022
1 parent 8bf52e3 commit 1f47ef1
Show file tree
Hide file tree
Showing 7 changed files with 30 additions and 26 deletions.
17 changes: 15 additions & 2 deletions admin/settings/security.php
Expand Up @@ -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'));
Expand Down
2 changes: 0 additions & 2 deletions admin/tool/admin_presets/lang/en/tool_admin_presets.php
Expand Up @@ -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.
Expand Down
20 changes: 0 additions & 20 deletions admin/tool/admin_presets/settings.php
Expand Up @@ -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));

}
2 changes: 1 addition & 1 deletion adminpresets/classes/manager.php
Expand Up @@ -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) {
Expand Down
2 changes: 2 additions & 0 deletions lang/en/adminpresets.php
Expand Up @@ -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.';
Expand Down
11 changes: 11 additions & 0 deletions lib/db/upgrade.php
Expand Up @@ -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;
}
2 changes: 1 addition & 1 deletion version.php
Expand Up @@ -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
Expand Down

0 comments on commit 1f47ef1

Please sign in to comment.