diff options
Diffstat (limited to 'plugins/PrivacyManager/PrivacyManager.php')
-rw-r--r-- | plugins/PrivacyManager/PrivacyManager.php | 63 |
1 files changed, 58 insertions, 5 deletions
diff --git a/plugins/PrivacyManager/PrivacyManager.php b/plugins/PrivacyManager/PrivacyManager.php index b96cc7beed..ddce27fa3c 100644 --- a/plugins/PrivacyManager/PrivacyManager.php +++ b/plugins/PrivacyManager/PrivacyManager.php @@ -8,6 +8,7 @@ */ namespace Piwik\Plugins\PrivacyManager; +use HTML_QuickForm2_DataSource_Array; use Piwik\Common; use Piwik\Config as PiwikConfig; use Piwik\DataTable\DataTableInterface; @@ -17,7 +18,10 @@ use Piwik\Metrics; use Piwik\Option; use Piwik\Period; use Piwik\Period\Range; +use Piwik\Piwik; +use Piwik\Plugin; use Piwik\Plugins\Goals\Archiver; +use Piwik\Plugins\Installation\FormDefaultSettings; use Piwik\Site; use Piwik\Tracker\GoalManager; @@ -32,7 +36,7 @@ require_once PIWIK_INCLUDE_PATH . '/plugins/PrivacyManager/IPAnonymizer.php'; /** */ -class PrivacyManager extends \Piwik\Plugin +class PrivacyManager extends Plugin { const OPTION_LAST_DELETE_PIWIK_LOGS = "lastDelete_piwik_logs"; const OPTION_LAST_DELETE_PIWIK_REPORTS = 'lastDelete_piwik_reports'; @@ -133,10 +137,12 @@ class PrivacyManager extends \Piwik\Plugin public function getListHooksRegistered() { return array( - 'AssetManager.getJavaScriptFiles' => 'getJsFiles', - 'Tracker.setTrackerCacheGeneral' => 'setTrackerCacheGeneral', - 'Tracker.isExcludedVisit' => array($this->dntChecker, 'checkHeaderInTracker'), - 'Tracker.setVisitorIp' => array($this->ipAnonymizer, 'setVisitorIpAddress'), + 'AssetManager.getJavaScriptFiles' => 'getJsFiles', + 'Tracker.setTrackerCacheGeneral' => 'setTrackerCacheGeneral', + 'Tracker.isExcludedVisit' => array($this->dntChecker, 'checkHeaderInTracker'), + 'Tracker.setVisitorIp' => array($this->ipAnonymizer, 'setVisitorIpAddress'), + 'Installation.defaultSettingsForm.init' => 'installationFormInit', + 'Installation.defaultSettingsForm.submit' => 'installationFormSubmit', ); } @@ -152,6 +158,53 @@ class PrivacyManager extends \Piwik\Plugin } /** + * Customize the Installation "default settings" form. + * + * @param FormDefaultSettings $form + */ + public function installationFormInit(FormDefaultSettings $form) + { + $form->addElement('checkbox', 'do_not_track', null, + array( + 'content' => ' ' . Piwik::translate('PrivacyManager_DoNotTrack_Enable') . '<br>' + . Piwik::translate('PrivacyManager_DoNotTrack_EnabledMoreInfo'), + )); + $form->addElement('checkbox', 'anonymise_ip', null, + array( + 'content' => ' ' . Piwik::translate('PrivacyManager_AnonymizeIpInlineHelp') . '<br>' + . Piwik::translate('PrivacyManager_AnonymizeIpExtendedHelp', array('213.34.51.91', '213.34.0.0')), + )); + + // default values + $form->addDataSource(new HTML_QuickForm2_DataSource_Array(array( + 'do_not_track' => DoNotTrackHeaderChecker::isActive(), + 'anonymise_ip' => IPAnonymizer::isActive(), + ))); + } + + /** + * Process the submit on the Installation "default settings" form. + * + * @param FormDefaultSettings $form + */ + public function installationFormSubmit(FormDefaultSettings $form) + { + $doNotTrack = (bool) $form->getSubmitValue('do_not_track'); + if ($doNotTrack) { + DoNotTrackHeaderChecker::activate(); + } else { + DoNotTrackHeaderChecker::deactivate(); + } + + $anonymiseIp = (bool) $form->getSubmitValue('anonymise_ip'); + if ($anonymiseIp) { + IPAnonymizer::activate(); + } else { + IPAnonymizer::deactivate(); + } + } + + /** * Returns the settings for the data purging feature. * * @return array |