MDL-81807 core: Add scheduled task for updating the GeoIP database

This commit includes the following changes:

- Implemented a scheduled task to automate the download and update of the GeoIP database.
- Integrated checksum verification for the downloaded database file.
- Added new configuration settings to enable administrators to enter MaxMind account credentials,
  allowing authenticated access to both free and paid GeoIP database versions from Maxmind.
This commit is contained in:
Trisha Milan
2024-06-25 15:17:30 +10:00
parent ad7fc69c25
commit d0e82b746e
6 changed files with 227 additions and 8 deletions
+20 -1
View File
@@ -44,7 +44,26 @@ if ($hassiteconfig) {
$temp->add(new admin_setting_configfile('geoip2file', new lang_string('geoipfile', 'core_admin'),
new lang_string('configgeoipfile', 'core_admin', $CFG->dataroot . '/geoip/'),
$CFG->dataroot . '/geoip/GeoLite2-City.mmdb'));
$CFG->dataroot . '/geoip/GeoIP-City.mmdb'));
$temp->add(new admin_setting_configselect('geoipdbedition',
new lang_string('geoipdbedition', 'core_admin'),
new lang_string('geoipdbedition_desc', 'core_admin'), 'GeoLite2-City',
['GeoLite2-City' => 'GeoLite2-City', 'GeoIP2-City' => 'GeoIP2-City']));
$temp->add(new admin_setting_configtext('geoipmaxmindaccid',
new lang_string('geoipmaxmindaccid', 'core_admin'),
new lang_string('geoipmaxmindaccid_desc', 'core_admin'),
'',
PARAM_TEXT,
));
$temp->add(new admin_setting_configtext('geoipmaxmindlicensekey',
new lang_string('geoipmaxmindlicensekey', 'core_admin'),
new lang_string('geoipmaxmindlicensekey_desc', 'core_admin'),
'',
PARAM_TEXT,
));
$temp->add(new admin_setting_configtext('googlemapkey3', new lang_string('googlemapkey3', 'core_admin'),
new lang_string('googlemapkey3_help', 'core_admin'), '', PARAM_RAW, 60));