Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Giehl <stefan@piwik.org>2018-05-22 02:12:59 +0300
committerdiosmosis <diosmosis@users.noreply.github.com>2018-05-22 02:12:59 +0300
commit05d5b3010b889ac7cbea12bc9c4e70c98a33ecb0 (patch)
treed8152e314c391c0ccad4fa73cdf48c33783c368b
parent634a7fe19efa7bc8a80ebad55f41025fe639ecfc (diff)
Adds message about data retention on gdpr overview (#12878)
* Adds message about data retention on gdpr overview * Adds additional information about gdpr relevant data retention * replace log data with raw data * review adjustments * adds ui test * review adjustments * update UI files
-rw-r--r--config/global.ini.php2
-rw-r--r--core/Tracker/Model.php2
-rw-r--r--plugins/PrivacyManager/API.php2
-rw-r--r--plugins/PrivacyManager/Commands/AnonymizeRawData.php2
-rw-r--r--plugins/PrivacyManager/Controller.php35
-rw-r--r--plugins/PrivacyManager/PrivacyManager.php6
-rw-r--r--plugins/PrivacyManager/lang/en.json6
-rw-r--r--plugins/PrivacyManager/stylesheets/gdprOverview.less4
-rw-r--r--plugins/PrivacyManager/templates/gdprOverview.twig23
-rw-r--r--plugins/PrivacyManager/templates/privacySettings.twig2
-rw-r--r--plugins/PrivacyManager/tests/Integration/DataPurgingTest.php4
-rw-r--r--plugins/PrivacyManager/tests/UI/PrivacyManager_spec.js14
-rw-r--r--plugins/PrivacyManager/tests/UI/expected-screenshots/PrivacyManager_anonymizelogdata_anonymizeip_and_visit_column_cancelled.png4
-rw-r--r--plugins/PrivacyManager/tests/UI/expected-screenshots/PrivacyManager_anonymizelogdata_anonymizeip_and_visit_column_confirmed.png4
-rw-r--r--plugins/PrivacyManager/tests/UI/expected-screenshots/PrivacyManager_anonymizelogdata_anonymizeip_and_visit_column_prefilled.png4
-rw-r--r--plugins/PrivacyManager/tests/UI/expected-screenshots/PrivacyManager_anonymizelogdata_anonymizelocation_anduserid_and_action_column_confirmed.png4
-rw-r--r--plugins/PrivacyManager/tests/UI/expected-screenshots/PrivacyManager_anonymizelogdata_anonymizelocation_anduserid_and_action_column_prefilled.png4
-rw-r--r--plugins/PrivacyManager/tests/UI/expected-screenshots/PrivacyManager_anonymizelogdata_one_site_and_custom_date_confirmed.png4
-rw-r--r--plugins/PrivacyManager/tests/UI/expected-screenshots/PrivacyManager_anonymizelogdata_one_site_and_custom_date_prefilled.png4
-rw-r--r--plugins/PrivacyManager/tests/UI/expected-screenshots/PrivacyManager_gdpr_overview.png4
-rw-r--r--plugins/PrivacyManager/tests/UI/expected-screenshots/PrivacyManager_gdpr_overview_no_retention.png3
-rw-r--r--plugins/PrivacyManager/tests/UI/expected-screenshots/PrivacyManager_privacy_settings_default.png4
-rw-r--r--plugins/UserCountry/Commands/AttributeHistoricalDataWithLocations.php2
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_admin_diagnostics_configfile.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_admin_settings_general.png4
25 files changed, 112 insertions, 39 deletions
diff --git a/config/global.ini.php b/config/global.ini.php
index 67b0955e53..ffae4bf675 100644
--- a/config/global.ini.php
+++ b/config/global.ini.php
@@ -622,7 +622,7 @@ enable_installer = 1
; By setting this option to 0, you can prevent Super User from editing the Geolocation settings.
enable_geolocation_admin = 1
-; By setting this option to 0, the old log data and old report data features will be hidden from the UI
+; By setting this option to 0, the old raw data and old report data purging features will be hidden from the UI
; Note: log purging and old data purging still occurs, just the Super User cannot change the settings.
enable_delete_old_data_settings_admin = 1
diff --git a/core/Tracker/Model.php b/core/Tracker/Model.php
index afffd5faeb..82aae3e46d 100644
--- a/core/Tracker/Model.php
+++ b/core/Tracker/Model.php
@@ -410,7 +410,7 @@ class Model
}
/**
- * Returns true if the site doesn't have log data.
+ * Returns true if the site doesn't have raw data.
*
* @param int $siteId
* @return bool
diff --git a/plugins/PrivacyManager/API.php b/plugins/PrivacyManager/API.php
index 93f96101be..01664ce496 100644
--- a/plugins/PrivacyManager/API.php
+++ b/plugins/PrivacyManager/API.php
@@ -244,7 +244,7 @@ class API extends \Piwik\Plugin\API
private function checkDataPurgeAdminSettingsIsEnabled()
{
if (!Controller::isDataPurgeSettingsEnabled()) {
- throw new \Exception("Configuring deleting log data and report data has been disabled by Matomo admins.");
+ throw new \Exception("Configuring deleting raw data and report data has been disabled by Matomo admins.");
}
}
}
diff --git a/plugins/PrivacyManager/Commands/AnonymizeRawData.php b/plugins/PrivacyManager/Commands/AnonymizeRawData.php
index dcc31f7d50..476a932fab 100644
--- a/plugins/PrivacyManager/Commands/AnonymizeRawData.php
+++ b/plugins/PrivacyManager/Commands/AnonymizeRawData.php
@@ -25,7 +25,7 @@ class AnonymizeRawData extends ConsoleCommand
$this->setName('privacymanager:anonymize-some-raw-data');
$this->setDescription('Anonymize some of the stored raw data (logs). The reason it only anonymizes "some" data is that personal data can be present in many various data collection points, for example some of your page URLs or page titles may include personal data and these will not be anonymized by this command as it is not possible to detect personal data for example in a URL automatically.');
- $this->addOption('date', null, InputOption::VALUE_REQUIRED, 'Date or date range to invalidate log data for (UTC). Either a date like "2015-01-03" or a range like "2015-01-05,2015-02-12". By default, all data including today will be anonymized.', $defaultDate);
+ $this->addOption('date', null, InputOption::VALUE_REQUIRED, 'Date or date range to invalidate raw data for (UTC). Either a date like "2015-01-03" or a range like "2015-01-05,2015-02-12". By default, all data including today will be anonymized.', $defaultDate);
$this->addOption('unset-visit-columns', null, InputOption::VALUE_REQUIRED, 'Comma seperated list of log_visit columns that you want to unset. Each value for that column will be set to its default value. If the same column exists in "log_conversion" table as well, the column will be unset there as well. This action cannot be undone.', '');
$this->addOption('unset-link-visit-action-columns', null, InputOption::VALUE_REQUIRED, 'Comma seperated list of log_link_visit_action columns that you want to unset. Each value for that column will be set to its default value. This action cannot be undone.', '');
$this->addOption('anonymize-ip', null, InputOption::VALUE_NONE, 'If set, the IP will be anonymized with a mask of at least 2. This action cannot be undone.');
diff --git a/plugins/PrivacyManager/Controller.php b/plugins/PrivacyManager/Controller.php
index 075f63e760..5dc27722ec 100644
--- a/plugins/PrivacyManager/Controller.php
+++ b/plugins/PrivacyManager/Controller.php
@@ -35,7 +35,7 @@ class Controller extends \Piwik\Plugin\ControllerAdmin
private function checkDataPurgeAdminSettingsIsEnabled()
{
if (!self::isDataPurgeSettingsEnabled()) {
- throw new \Exception("Configuring deleting log data and report data has been disabled by Piwik admins.");
+ throw new \Exception("Configuring deleting raw data and report data has been disabled by Piwik admins.");
}
}
@@ -75,7 +75,36 @@ class Controller extends \Piwik\Plugin\ControllerAdmin
{
Piwik::checkUserHasSomeAdminAccess();
- return $this->renderTemplate('gdprOverview');
+ $purgeDataSettings = PrivacyManager::getPurgeDataSettings();
+
+ $reportRetention = '';
+
+ if ($purgeDataSettings['delete_reports_older_than'] > 12) {
+ $years = floor($purgeDataSettings['delete_reports_older_than']/12);
+ $reportRetention .= $years . ' ' . Piwik::translate($years > 1 ? 'Intl_PeriodYears' : 'Intl_PeriodYear') . ' ';
+ }
+ if ($purgeDataSettings['delete_reports_older_than'] % 12 > 0) {
+ $months = floor($purgeDataSettings['delete_reports_older_than']%12);
+ $reportRetention .= $months . ' ' . Piwik::translate($months > 1 ? 'Intl_PeriodMonths' : 'Intl_PeriodMonth');
+ }
+
+ $rawDataRetention = '';
+
+ if ($purgeDataSettings['delete_logs_older_than'] > 30) {
+ $months = floor($purgeDataSettings['delete_logs_older_than']/30);
+ $rawDataRetention .= $months . ' ' . Piwik::translate($months > 1 ? 'Intl_PeriodMonths' : 'Intl_PeriodMonth') . ' ';
+ }
+ if ($purgeDataSettings['delete_logs_older_than'] % 30 > 0) {
+ $days = floor($purgeDataSettings['delete_logs_older_than']%30);
+ $rawDataRetention .= $days . ' ' . Piwik::translate($days > 1 ? 'Intl_PeriodDays' : 'Intl_PeriodDay');
+ }
+
+ return $this->renderTemplate('gdprOverview', [
+ 'reportRetention' => trim($reportRetention),
+ 'rawDataRetention' => trim($rawDataRetention),
+ 'deleteLogsEnable' => $purgeDataSettings['delete_logs_enable'],
+ 'deleteReportsEnable' => $purgeDataSettings['delete_reports_enable'],
+ ]);
}
public function usersOptOut()
@@ -182,7 +211,7 @@ class Controller extends \Piwik\Plugin\ControllerAdmin
}
/**
- * Executes a data purge, deleting log data and report data using the current config
+ * Executes a data purge, deleting raw data and report data using the current config
* options. Echo's the result of getDatabaseSize after purging.
*/
public function executeDataPurge()
diff --git a/plugins/PrivacyManager/PrivacyManager.php b/plugins/PrivacyManager/PrivacyManager.php
index a8038a44e0..56f5b1d626 100644
--- a/plugins/PrivacyManager/PrivacyManager.php
+++ b/plugins/PrivacyManager/PrivacyManager.php
@@ -356,14 +356,14 @@ class PrivacyManager extends Plugin
}
/**
- * Deletes old log data based on the options set in the Deletelogs config
+ * Deletes old raw data based on the options set in the Deletelogs config
* section. This is a scheduled task and will only execute every N days. The number
* of days is determined by the delete_logs_schedule_lowest_interval config option.
*
* If delete_logs_enable is set to 1, old data in the log_visit, log_conversion,
* log_conversion_item and log_link_visit_action tables is deleted. The following
* options can tweak this behavior:
- * - delete_logs_older_than: The number of days after which log data is considered old.
+ * - delete_logs_older_than: The number of days after which raw data is considered old.
*
* @ToDo: return number of Rows deleted in last run; Display age of "oldest" row to help the user setting
* the day offset;
@@ -399,7 +399,7 @@ class PrivacyManager extends Plugin
}
/**
- * Returns an array describing what data would be purged if both log data & report
+ * Returns an array describing what data would be purged if both raw data & report
* purging is invoked.
*
* The returned array maps table names with the number of rows that will be deleted.
diff --git a/plugins/PrivacyManager/lang/en.json b/plugins/PrivacyManager/lang/en.json
index 884a2b3a0b..db35747315 100644
--- a/plugins/PrivacyManager/lang/en.json
+++ b/plugins/PrivacyManager/lang/en.json
@@ -10,15 +10,15 @@
"ClickHereSettings": "Click here to access the %s settings.",
"CurrentDBSize": "Current database size",
"DBPurged": "DB purged.",
- "DeleteBothConfirm": "You are about to enable both log data deletion & report data deletion. This will permanently remove your ability to view old analytics data. Are you sure you want to do this?",
+ "DeleteBothConfirm": "You are about to enable both raw data deletion & report data deletion. This will permanently remove your ability to view old analytics data. Are you sure you want to do this?",
"DeleteDataDescription": "You can configure Matomo to regularly delete old visitor logs and\/or processed reports to keep your database size small.",
- "DeleteDataDescription2": "If desired, pre-processed reports will not be deleted, only visit, pageview and conversion log data will be deleted. Or, the pre-processed reports can be deleted and the log data can be kept.",
+ "DeleteDataDescription2": "If desired, pre-processed reports will not be deleted, only visit, pageview and conversion raw data will be deleted. Or, the pre-processed reports can be deleted and the raw data can be kept.",
"DeleteDataInterval": "Delete old data every",
"DeleteOldVisitorLogs": "Delete old visitor logs",
"DeleteOldArchivedReports": "Delete old archived reports",
"DeleteLogDescription2": "When you enable automatic log deletion, you must ensure that all previous daily reports have been processed, so that no data is lost.",
"DeleteLogInfo": "Logs from the following tables will be deleted: %s",
- "DeleteLogsConfirm": "You are about to enable log data deletion. If old log data is removed, and reports haven't already been created, you will not be able to see historical past analytics data. Are you sure you want to do this?",
+ "DeleteLogsConfirm": "You are about to enable raw data deletion. If old raw data is removed, and reports haven't already been created, you will not be able to see historical past analytics data. Are you sure you want to do this?",
"DeleteLogsOlderThan": "Delete logs older than",
"DeleteMaxRows": "Maximum number of rows to delete in one run:",
"DeleteMaxRowsNoLimit": "no limit",
diff --git a/plugins/PrivacyManager/stylesheets/gdprOverview.less b/plugins/PrivacyManager/stylesheets/gdprOverview.less
index 0a0f72fe6e..f27d39f8f9 100644
--- a/plugins/PrivacyManager/stylesheets/gdprOverview.less
+++ b/plugins/PrivacyManager/stylesheets/gdprOverview.less
@@ -5,4 +5,8 @@
list-style-type: decimal !important;
}
}
+
+ ul li {
+ list-style-type: disc !important;
+ }
} \ No newline at end of file
diff --git a/plugins/PrivacyManager/templates/gdprOverview.twig b/plugins/PrivacyManager/templates/gdprOverview.twig
index 2ed97438ef..f461cad7a9 100644
--- a/plugins/PrivacyManager/templates/gdprOverview.twig
+++ b/plugins/PrivacyManager/templates/gdprOverview.twig
@@ -53,5 +53,28 @@
<li>Include Matomo in your <a href="https://www.cnil.fr/en/guidelines-dpia" target="_blank" rel="noreferrer noopener">data privacy impact assessment (DPIA)</a>, if applicable.</li>
</ol>
</div>
+
+ <div piwik-content-block content-title="Data retention">
+ <p>
+ Data retention for data stored in Matomo:
+ </p>
+ <ul>
+ {% if deleteLogsEnable %}
+ <li>all visits and actions raw data are deleted after <strong>{{ rawDataRetention }}</strong>.</li>
+ {% else %}
+ <li>visits and actions raw data are <strong>never</strong> deleted.</li>
+ {% endif %}
+ {% if deleteReportsEnable %}
+ <li>all aggregated reports are deleted after <strong>{{ reportRetention }}</strong>.</li>
+ {% else %}
+ <li>aggregated reports are <strong>never</strong> deleted.</li>
+ {% endif %}
+ </ul>
+ <p>
+ <br />
+ The overall data retention rate for your privacy policy is the raw data retention rate. Please note that aggregated reports may contain personal data as well. If you are using features like User ID, Custom Variables, Custom Dimension, or track personal data in other ways such as events, page URLs or page titles, etc, then the overall data retention rate for your privacy policy is the higher of the two.
+ </p>
+ </div>
+
</div>
{% endblock %}
diff --git a/plugins/PrivacyManager/templates/privacySettings.twig b/plugins/PrivacyManager/templates/privacySettings.twig
index b3eac6f96a..0ffc8e479a 100644
--- a/plugins/PrivacyManager/templates/privacySettings.twig
+++ b/plugins/PrivacyManager/templates/privacySettings.twig
@@ -305,7 +305,7 @@
{% endif %}
<br />
- <h3>Previous log data anonymizations</h3>
+ <h3>Previous raw data anonymizations</h3>
<table piwik-content-table>
<thead>
<tr>
diff --git a/plugins/PrivacyManager/tests/Integration/DataPurgingTest.php b/plugins/PrivacyManager/tests/Integration/DataPurgingTest.php
index f8ff592eb9..cec00dfd66 100644
--- a/plugins/PrivacyManager/tests/Integration/DataPurgingTest.php
+++ b/plugins/PrivacyManager/tests/Integration/DataPurgingTest.php
@@ -119,7 +119,7 @@ class DataPurgingTest extends IntegrationTestCase
$settings = array();
$settings['delete_logs_enable'] = 1;
- // purging log data from before 2012-01-24
+ // purging raw data from before 2012-01-24
$settings['delete_logs_older_than'] = 35 + $daysSinceToday;
$settings['delete_logs_schedule_lowest_interval'] = 7;
$settings['delete_logs_max_rows_per_query'] = 100000;
@@ -512,7 +512,7 @@ class DataPurgingTest extends IntegrationTestCase
}
/**
- * Test no concurrency issues when deleting log data from log_action table.
+ * Test no concurrency issues when deleting raw data from log_action table.
*/
public function testPurgeLogDataConcurrency()
{
diff --git a/plugins/PrivacyManager/tests/UI/PrivacyManager_spec.js b/plugins/PrivacyManager/tests/UI/PrivacyManager_spec.js
index 5fff7be1d2..7193b83260 100644
--- a/plugins/PrivacyManager/tests/UI/PrivacyManager_spec.js
+++ b/plugins/PrivacyManager/tests/UI/PrivacyManager_spec.js
@@ -114,6 +114,20 @@ describe("PrivacyManager", function () {
it('should load GDPR overview page', function (done) {
capturePage('gdpr_overview', function (page) {
+ testEnvironment.overrideConfig('Deletelogs', 'delete_logs_enable', '1');
+ testEnvironment.overrideConfig('Deletelogs', 'delete_logs_older_than', '95');
+ testEnvironment.overrideConfig('Deletereports', 'delete_reports_enable', '1');
+ testEnvironment.overrideConfig('Deletereports', 'delete_reports_older_than', '131');
+ testEnvironment.save();
+ loadActionPage(page, 'gdprOverview');
+ }, done);
+ });
+
+ it('should load GDPR overview page', function (done) {
+ capturePage('gdpr_overview_no_retention', function (page) {
+ testEnvironment.overrideConfig('Deletelogs', 'delete_logs_enable', '0');
+ testEnvironment.overrideConfig('Deletereports', 'delete_reports_enable', '0');
+ testEnvironment.save();
loadActionPage(page, 'gdprOverview');
}, done);
});
diff --git a/plugins/PrivacyManager/tests/UI/expected-screenshots/PrivacyManager_anonymizelogdata_anonymizeip_and_visit_column_cancelled.png b/plugins/PrivacyManager/tests/UI/expected-screenshots/PrivacyManager_anonymizelogdata_anonymizeip_and_visit_column_cancelled.png
index 8a4b0f2b06..a0bbd53c71 100644
--- a/plugins/PrivacyManager/tests/UI/expected-screenshots/PrivacyManager_anonymizelogdata_anonymizeip_and_visit_column_cancelled.png
+++ b/plugins/PrivacyManager/tests/UI/expected-screenshots/PrivacyManager_anonymizelogdata_anonymizeip_and_visit_column_cancelled.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:93c152270fe607f5ad973c24e4cf5a751247665be556d85766098d438d63223d
-size 215795
+oid sha256:89a121c5bc3a8865caeefbfd0304abbd662f6f070c4b345026b4f52a285c48a5
+size 215658
diff --git a/plugins/PrivacyManager/tests/UI/expected-screenshots/PrivacyManager_anonymizelogdata_anonymizeip_and_visit_column_confirmed.png b/plugins/PrivacyManager/tests/UI/expected-screenshots/PrivacyManager_anonymizelogdata_anonymizeip_and_visit_column_confirmed.png
index fc5c056492..c88c767966 100644
--- a/plugins/PrivacyManager/tests/UI/expected-screenshots/PrivacyManager_anonymizelogdata_anonymizeip_and_visit_column_confirmed.png
+++ b/plugins/PrivacyManager/tests/UI/expected-screenshots/PrivacyManager_anonymizelogdata_anonymizeip_and_visit_column_confirmed.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:439fe21de14e29aca807a7392b73904ec52d96ad456c99bb7e4e87b91fcd422a
-size 220027
+oid sha256:5bdb303a0d23b056052450361d46493b287bf7e7e73e9930c610e4d36764fa6b
+size 219867
diff --git a/plugins/PrivacyManager/tests/UI/expected-screenshots/PrivacyManager_anonymizelogdata_anonymizeip_and_visit_column_prefilled.png b/plugins/PrivacyManager/tests/UI/expected-screenshots/PrivacyManager_anonymizelogdata_anonymizeip_and_visit_column_prefilled.png
index 8a4b0f2b06..a0bbd53c71 100644
--- a/plugins/PrivacyManager/tests/UI/expected-screenshots/PrivacyManager_anonymizelogdata_anonymizeip_and_visit_column_prefilled.png
+++ b/plugins/PrivacyManager/tests/UI/expected-screenshots/PrivacyManager_anonymizelogdata_anonymizeip_and_visit_column_prefilled.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:93c152270fe607f5ad973c24e4cf5a751247665be556d85766098d438d63223d
-size 215795
+oid sha256:89a121c5bc3a8865caeefbfd0304abbd662f6f070c4b345026b4f52a285c48a5
+size 215658
diff --git a/plugins/PrivacyManager/tests/UI/expected-screenshots/PrivacyManager_anonymizelogdata_anonymizelocation_anduserid_and_action_column_confirmed.png b/plugins/PrivacyManager/tests/UI/expected-screenshots/PrivacyManager_anonymizelogdata_anonymizelocation_anduserid_and_action_column_confirmed.png
index f4b79a7ac1..0ea24877ef 100644
--- a/plugins/PrivacyManager/tests/UI/expected-screenshots/PrivacyManager_anonymizelogdata_anonymizelocation_anduserid_and_action_column_confirmed.png
+++ b/plugins/PrivacyManager/tests/UI/expected-screenshots/PrivacyManager_anonymizelogdata_anonymizelocation_anduserid_and_action_column_confirmed.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:8955ef2e11b73339afc38acb52508a77ec7f53c60735e2f8b35e7940c39f2a86
-size 232884
+oid sha256:856c8fa3e9f740d2a68c9896f7545efa7541e00b7cc30f5b3aa06b958dd64c87
+size 232736
diff --git a/plugins/PrivacyManager/tests/UI/expected-screenshots/PrivacyManager_anonymizelogdata_anonymizelocation_anduserid_and_action_column_prefilled.png b/plugins/PrivacyManager/tests/UI/expected-screenshots/PrivacyManager_anonymizelogdata_anonymizelocation_anduserid_and_action_column_prefilled.png
index f4b25b8a9c..71faab6186 100644
--- a/plugins/PrivacyManager/tests/UI/expected-screenshots/PrivacyManager_anonymizelogdata_anonymizelocation_anduserid_and_action_column_prefilled.png
+++ b/plugins/PrivacyManager/tests/UI/expected-screenshots/PrivacyManager_anonymizelogdata_anonymizelocation_anduserid_and_action_column_prefilled.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:209e820f494432c20d5d61233ad7ea5528efac5f43a65b39848965e381aabee2
-size 229708
+oid sha256:529ea48693e5e29cfb1b3f16d639b5a35d7f7f0330415d01cfdf2e4fb75e5f27
+size 229570
diff --git a/plugins/PrivacyManager/tests/UI/expected-screenshots/PrivacyManager_anonymizelogdata_one_site_and_custom_date_confirmed.png b/plugins/PrivacyManager/tests/UI/expected-screenshots/PrivacyManager_anonymizelogdata_one_site_and_custom_date_confirmed.png
index 0503ef1641..13ba992f72 100644
--- a/plugins/PrivacyManager/tests/UI/expected-screenshots/PrivacyManager_anonymizelogdata_one_site_and_custom_date_confirmed.png
+++ b/plugins/PrivacyManager/tests/UI/expected-screenshots/PrivacyManager_anonymizelogdata_one_site_and_custom_date_confirmed.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:37447901deaa6685e3751da4ec8f4fd2c10686ef01ff9101d23d8c420d4a69e7
-size 241033
+oid sha256:2f9b471523733d837b733024508f1e255fc3378f6bedb6aa2a5c8955a20e49c6
+size 240883
diff --git a/plugins/PrivacyManager/tests/UI/expected-screenshots/PrivacyManager_anonymizelogdata_one_site_and_custom_date_prefilled.png b/plugins/PrivacyManager/tests/UI/expected-screenshots/PrivacyManager_anonymizelogdata_one_site_and_custom_date_prefilled.png
index 4b355482ae..b1933f1bef 100644
--- a/plugins/PrivacyManager/tests/UI/expected-screenshots/PrivacyManager_anonymizelogdata_one_site_and_custom_date_prefilled.png
+++ b/plugins/PrivacyManager/tests/UI/expected-screenshots/PrivacyManager_anonymizelogdata_one_site_and_custom_date_prefilled.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:f7c8332a7a7955f2e339a149c5129f2bd3ffc5b13ae3cf2590aa2ebdb5466b89
-size 232298
+oid sha256:295fc25801ea6868baae3d67818b224265f2f1abc8c4a1af28c51941ed2f5413
+size 232180
diff --git a/plugins/PrivacyManager/tests/UI/expected-screenshots/PrivacyManager_gdpr_overview.png b/plugins/PrivacyManager/tests/UI/expected-screenshots/PrivacyManager_gdpr_overview.png
index 6d51dac726..912818b9bc 100644
--- a/plugins/PrivacyManager/tests/UI/expected-screenshots/PrivacyManager_gdpr_overview.png
+++ b/plugins/PrivacyManager/tests/UI/expected-screenshots/PrivacyManager_gdpr_overview.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:b6e4cd88e78accff5893712a497d2380da7d32ae9592e9bddc6d2417b4e22820
-size 212469
+oid sha256:a5b1cce6a316744cbe6b1ae8a0ac6316e8317b7d482aae261c013ab6957721b0
+size 256782
diff --git a/plugins/PrivacyManager/tests/UI/expected-screenshots/PrivacyManager_gdpr_overview_no_retention.png b/plugins/PrivacyManager/tests/UI/expected-screenshots/PrivacyManager_gdpr_overview_no_retention.png
new file mode 100644
index 0000000000..27a6bb9dab
--- /dev/null
+++ b/plugins/PrivacyManager/tests/UI/expected-screenshots/PrivacyManager_gdpr_overview_no_retention.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:04da8b7024c2d6db15b224dbce979487bfd50cacd9b0d523c0a0e4dfb2619b58
+size 254196
diff --git a/plugins/PrivacyManager/tests/UI/expected-screenshots/PrivacyManager_privacy_settings_default.png b/plugins/PrivacyManager/tests/UI/expected-screenshots/PrivacyManager_privacy_settings_default.png
index d1fd9cdf3c..0256552f34 100644
--- a/plugins/PrivacyManager/tests/UI/expected-screenshots/PrivacyManager_privacy_settings_default.png
+++ b/plugins/PrivacyManager/tests/UI/expected-screenshots/PrivacyManager_privacy_settings_default.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:5fa96f0b7c3c4a24b31066916f5a29bd68d15ab294f009d1c5a5f7554746a591
-size 453712
+oid sha256:56aa38c13d3e4e5118aedb39cc6fbb15b9222bd32e277baf62beb0c9bae4f544
+size 453512
diff --git a/plugins/UserCountry/Commands/AttributeHistoricalDataWithLocations.php b/plugins/UserCountry/Commands/AttributeHistoricalDataWithLocations.php
index c5eaf833da..763964ce72 100644
--- a/plugins/UserCountry/Commands/AttributeHistoricalDataWithLocations.php
+++ b/plugins/UserCountry/Commands/AttributeHistoricalDataWithLocations.php
@@ -73,7 +73,7 @@ class AttributeHistoricalDataWithLocations extends ConsoleCommand
protected function configure()
{
$this->setName('usercountry:attribute');
- $this->setDescription("Re-attribute existing log data (visits & conversions) with geolocated location data, using the specified or configured location provider.");
+ $this->setDescription("Re-attribute existing raw data (visits & conversions) with geolocated location data, using the specified or configured location provider.");
$this->addArgument(self::DATES_RANGE_ARGUMENT, InputArgument::REQUIRED, 'Attribute visits in this date range. Eg, 2012-01-01,2013-01-01');
$this->addOption(self::PERCENT_STEP_ARGUMENT, null, InputArgument::OPTIONAL,
'How often to display the command progress. A status update will be printed after N percent of visits are processed, '
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_admin_diagnostics_configfile.png b/tests/UI/expected-screenshots/UIIntegrationTest_admin_diagnostics_configfile.png
index 4935c6db5c..8243481f5e 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_admin_diagnostics_configfile.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_admin_diagnostics_configfile.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:a5a920102ed7284fad2d6257f030f9145ba11a60e3508fa3c11122720bff6e0e
-size 3913872
+oid sha256:40866760a0a2fc54264f378ef8f175a17ac8ecfda0ad2de7db7a511438a6d4e6
+size 3915288
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_admin_settings_general.png b/tests/UI/expected-screenshots/UIIntegrationTest_admin_settings_general.png
index 607c103a6f..fac01402e1 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_admin_settings_general.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_admin_settings_general.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:25978e7d3fddcc7c402f2da80022f45e928fc1b2913ad9de612c9b7a556638ab
-size 782140
+oid sha256:c1a0d81792a54a0ec18b3e93b7e87e9c1b28271937580f0feb97a889e2692385
+size 782113