From bae07c1bfb5a7af3faf09cf8d85b8a01aa02c16a Mon Sep 17 00:00:00 2001 From: Nicolas Martignoni Date: Fri, 12 Jun 2020 17:20:18 +0200 Subject: [PATCH] MDL-68992 Privacy: Update default minimal digital age of consent Updating default minimal digital age of consent according to current legislation, that was updated for several countries since 2018. --- admin/settings/users.php | 18 +++++++++++++++++ lib/db/upgrade.php | 42 ++++++++++++++++++++++++++++++++++++++++ version.php | 2 +- 3 files changed, 61 insertions(+), 1 deletion(-) diff --git a/admin/settings/users.php b/admin/settings/users.php index 0b7c4a4aa47..c54a169ce34 100644 --- a/admin/settings/users.php +++ b/admin/settings/users.php @@ -261,10 +261,28 @@ if ($hassiteconfig) { $temp->add($setting); // See {@link https://gdpr-info.eu/art-8-gdpr/}. + // See {@link https://www.betterinternetforkids.eu/web/portal/practice/awareness/detail?articleId=3017751}. $ageofdigitalconsentmap = implode(PHP_EOL, [ '*, 16', 'AT, 14', + 'BE, 13', + 'BG, 14', + 'CY, 14', + 'CZ, 15', + 'DK, 13', + 'EE, 13', 'ES, 14', + 'FI, 13', + 'FR, 15', + 'GB, 13', + 'GR, 15', + 'IT, 14', + 'LT, 14', + 'LV, 13', + 'MT, 13', + 'NO, 13', + 'PT, 13', + 'SE, 13', 'US, 13' ]); $setting = new admin_setting_agedigitalconsentmap('agedigitalconsentmap', diff --git a/lib/db/upgrade.php b/lib/db/upgrade.php index 53fa76a7536..dcc2f48034a 100644 --- a/lib/db/upgrade.php +++ b/lib/db/upgrade.php @@ -2443,6 +2443,48 @@ function xmldb_main_upgrade($oldversion) { // Automatically generated Moodle v3.9.0 release upgrade line. // Put any upgrade step following this. + if ($oldversion < 2020061500.02) { + // Update default digital age consent map according to the current legislation on each country. + + // The default age of digital consent map for 38 and below. + $oldageofdigitalconsentmap = implode(PHP_EOL, [ + '*, 16', + 'AT, 14', + 'ES, 14', + 'US, 13' + ]); + + // Check if the current age of digital consent map matches the old one. + if (get_config('moodle', 'agedigitalconsentmap') === $oldageofdigitalconsentmap) { + // If the site is still using the old defaults, upgrade to the new default. + $ageofdigitalconsentmap = implode(PHP_EOL, [ + '*, 16', + 'AT, 14', + 'BE, 13', + 'BG, 14', + 'CY, 14', + 'CZ, 15', + 'DK, 13', + 'EE, 13', + 'ES, 14', + 'FI, 13', + 'FR, 15', + 'GB, 13', + 'GR, 15', + 'IT, 14', + 'LT, 14', + 'LV, 13', + 'MT, 13', + 'NO, 13', + 'PT, 13', + 'SE, 13', + 'US, 13' + ]); + set_config('agedigitalconsentmap', $ageofdigitalconsentmap); + } + + upgrade_main_savepoint(true, 2020061500.02); + } return true; } diff --git a/version.php b/version.php index af93d1958b0..a748bc4527b 100644 --- a/version.php +++ b/version.php @@ -29,7 +29,7 @@ defined('MOODLE_INTERNAL') || die(); -$version = 2020061500.01; // 20200615 = branching date YYYYMMDD - do not modify! +$version = 2020061500.02; // 20200615 = branching date YYYYMMDD - do not modify! // RR = release increments - 00 in DEV branches. // .XX = incremental changes. $release = '3.9+ (Build: 20200618)'; // Human-friendly version name