From 3abdabedda3299feeb21040b34853c046d5b7f02 Mon Sep 17 00:00:00 2001 From: caddoo Date: Thu, 31 Oct 2024 10:19:33 +1300 Subject: [PATCH 01/59] Update global settings to support excluding common PII params --- plugins/SitesManager/API.php | 50 +++++- plugins/SitesManager/Controller.php | 14 +- plugins/SitesManager/SitesManager.php | 36 ++++ plugins/SitesManager/lang/en.json | 9 +- .../stylesheets/SitesManager.less | 5 + .../templates/globalSettings.twig | 4 +- .../tests/Integration/ApiTest.php | 68 ++++++++ .../src/GlobalSettingsStore/GlobalSettings.ts | 1 + .../GlobalSettingsStore.ts | 3 + .../ExcludeQueryParameterSettings.vue | 163 ++++++++++++++++++ .../ManageGlobalSettings.vue | 45 ++--- plugins/SitesManager/vue/src/index.ts | 1 + 12 files changed, 363 insertions(+), 36 deletions(-) create mode 100644 plugins/SitesManager/vue/src/ManageGlobalSettings/ExcludeQueryParameterSettings.vue diff --git a/plugins/SitesManager/API.php b/plugins/SitesManager/API.php index a3ddbcb4cfe..c5a349353f7 100644 --- a/plugins/SitesManager/API.php +++ b/plugins/SitesManager/API.php @@ -69,6 +69,7 @@ class API extends \Piwik\Plugin\API public const OPTION_EXCLUDED_USER_AGENTS_GLOBAL = 'SitesManager_ExcludedUserAgentsGlobal'; public const OPTION_EXCLUDED_REFERRERS_GLOBAL = 'SitesManager_ExcludedReferrersGlobal'; public const OPTION_KEEP_URL_FRAGMENTS_GLOBAL = 'SitesManager_KeepURLFragmentsGlobal'; + public const OPTION_EXCLUDE_TYPE_QUERY_PARAMS_GLOBAL = 'SitesManager_ExcludeTypeQueryParamsGlobal'; /** * @var SettingsProvider @@ -1126,7 +1127,17 @@ public function getExcludedQueryParameters(int $idSite): array public function getExcludedQueryParametersGlobal() { Piwik::checkUserHasSomeViewAccess(); - return Option::get(self::OPTION_EXCLUDED_QUERY_PARAMETERS_GLOBAL); + + switch ($this->getExclusionTypeForQueryParams()) { + case SitesManager::URL_PARAM_EXCLUSION_TYPE_NAME_NO_EXCLUSIONS: + return ''; + case SitesManager::URL_PARAM_EXCLUSION_TYPE_NAME_COMMON_PII_EXCLUSIONS: + return implode(',', SitesManager::COMMON_URL_PARAMS_TO_EXCLUDE); + case SitesManager::URL_PARAM_EXCLUSION_TYPE_NAME_CUSTOM_EXCLUSIONS: + return Option::get(self::OPTION_EXCLUDED_QUERY_PARAMETERS_GLOBAL); + default: + return Option::get(self::OPTION_EXCLUDED_QUERY_PARAMETERS_GLOBAL); + } } /** @@ -1346,6 +1357,43 @@ public function setDefaultTimezone($defaultTimezone) return true; } + public function setExclusionTypeForQueryParams(string $exclusionTypeForQueryParams): void + { + Piwik::checkUserHasSuperUserAccess(); + + if (!in_array($exclusionTypeForQueryParams, SitesManager::URL_PARAM_EXCLUSION_TYPES)) { + throw new Exception($this->translator->translate('SitesManager_ExceptionInvalidExclusionType')); + } + + Option::set(self::OPTION_EXCLUDE_TYPE_QUERY_PARAMS_GLOBAL, $exclusionTypeForQueryParams); + + Cache::deleteTrackerCache(); + } + + /** + * Gets the exclusion type, if the option is not present in the store then it infers the type based on if there are + * custom exclusions already defined. + * + * @return string + */ + public function getExclusionTypeForQueryParams(): string + { + Piwik::checkUserHasSomeViewAccess(); + + $result = Option::get(self::OPTION_EXCLUDE_TYPE_QUERY_PARAMS_GLOBAL); + + if (!empty($result)) { + return $result; + } + + $excludedQueryParamsGlobal = Option::get(self::OPTION_EXCLUDED_QUERY_PARAMETERS_GLOBAL); + + if (empty($excludedQueryParamsGlobal)) { + return SitesManager::URL_PARAM_EXCLUSION_TYPE_NAME_NO_EXCLUSIONS; + } + return SitesManager::URL_PARAM_EXCLUSION_TYPE_NAME_CUSTOM_EXCLUSIONS; + } + /** * Update an existing website. * If only one URL is specified then only the main url will be updated. diff --git a/plugins/SitesManager/Controller.php b/plugins/SitesManager/Controller.php index 077b8669d53..82054788080 100644 --- a/plugins/SitesManager/Controller.php +++ b/plugins/SitesManager/Controller.php @@ -54,7 +54,12 @@ public function globalSettings() { Piwik::checkUserHasSuperUserAccess(); - return $this->renderTemplate('globalSettings'); + return $this->renderTemplate( + 'globalSettings', + [ + 'commonSensitiveQueryParams' => SitesManager::COMMON_URL_PARAMS_TO_EXCLUDE + ] + ); } public function getGlobalSettings() @@ -73,6 +78,11 @@ public function getGlobalSettings() $globalSettings['excludedQueryParametersGlobal'] = API::getInstance()->getExcludedQueryParametersGlobal(); $globalSettings['excludedUserAgentsGlobal'] = API::getInstance()->getExcludedUserAgentsGlobal(); $globalSettings['excludedReferrersGlobal'] = API::getInstance()->getExcludedReferrersGlobal(); + $globalSettings['exclusionTypeForQueryParams'] = API::getInstance()->getExclusionTypeForQueryParams(); + + if ($globalSettings['exclusionTypeForQueryParams'] !== 'custom_exclusions') { + $globalSettings['excludedQueryParametersGlobal'] = ''; + } return $response->getResponse($globalSettings); } @@ -95,6 +105,7 @@ public function setGlobalSettings() $searchKeywordParameters = Common::getRequestVar('searchKeywordParameters', $default = ""); $searchCategoryParameters = Common::getRequestVar('searchCategoryParameters', $default = ""); $keepURLFragments = Common::getRequestVar('keepURLFragments', $default = 0); + $exclusionTypeForQueryParams = Common::getRequestVar('exclusionTypeForQueryParams', $default = ""); $api = API::getInstance(); $api->setDefaultTimezone($timezone); @@ -105,6 +116,7 @@ public function setGlobalSettings() $api->setGlobalExcludedReferrers($excludedReferrers); $api->setGlobalSearchParameters($searchKeywordParameters, $searchCategoryParameters); $api->setKeepURLFragmentsGlobal($keepURLFragments); + $api->setExclusionTypeForQueryParams($exclusionTypeForQueryParams); $toReturn = $response->getResponse(); } catch (Exception $e) { diff --git a/plugins/SitesManager/SitesManager.php b/plugins/SitesManager/SitesManager.php index 969f0bde828..284e3fb34ad 100644 --- a/plugins/SitesManager/SitesManager.php +++ b/plugins/SitesManager/SitesManager.php @@ -39,6 +39,36 @@ class SitesManager extends \Piwik\Plugin public const KEEP_URL_FRAGMENT_YES = 1; public const KEEP_URL_FRAGMENT_NO = 2; + public const COMMON_URL_PARAMS_TO_EXCLUDE = ['creditcardnumber', 'off', 'kreditkarte', 'debitcard', 'kreditkort', + 'kredietkaart', ' kartakredytowa', 'cvv', 'cc', 'ccc', 'cccsc', 'cccvc', 'ccexpiry', 'ccexpyear', 'ccexpmonth', + 'cccvv', 'cctype', 'cvc', 'exp', 'ccname', 'cardnumber', 'ccnumber', 'username', 'creditcard', 'name', + 'fullname', 'familyname', 'firstname', 'vorname', 'nachname', 'lastname', 'nickname', 'surname', 'login', + 'formlogin', 'konto', 'user', 'website', 'domain', 'gender', 'company', 'firma', 'geschlecht', 'email', + 'emailaddress', 'emailadresse', 'mail', 'epos', 'ebost', 'epost', 'eposta', 'authpw', 'token_auth', + 'tokenauth', 'token', 'pin', 'ibanaccountnum', 'ibanaccountnumber', 'account', 'accountnum', 'auth', 'age', + 'alter', 'tel', 'city', 'cell', 'cellphone', 'bic', 'iban', 'swift', 'kontonummer', 'konto', 'kontonr', + 'phone', 'mobile', 'mobiili', 'mobilne', 'handynummer', 'téléphone', 'telefono', 'ssn', 'socialsecuritynumber', + 'socialsec', 'socsec', 'address', 'addressline1', 'addressline2','billingaddress', 'billingaddress1', + 'billingaddress2','shippingaddress', 'shippingaddress1', 'shippingaddress2', 'vat', 'vatnumber', 'gst', + 'gstnumber', 'tax', 'taxnumber', 'steuernummer', 'adresse', 'indirizzo', 'adres', 'dirección', 'osoite', + 'address1', 'address2', 'address3', 'street', 'strasse', 'rue', 'via', 'ulica', 'calle', 'sokak', 'zip', + 'zipcode', 'plz', 'postleitzahl', 'postalcode', 'postcode', 'dateofbirth', 'dob', 'telephone', 'telefon', + 'telefonnr', 'telefonnummer', 'password', 'passwort', 'kennwort', 'wachtwoord', 'contraseña', 'passord', + 'hasło', 'heslo', 'wagwoord', 'parole', 'contrasenya', 'heslo', 'clientid', 'identifier', 'id', + 'consumersecret', 'webhooksecret', 'consumerkey', 'keyconsumersecret', 'keyconsumerkey', 'clientsecret', + 'secret', 'secretq', 'secretquestion', 'privatekey', 'publickey', 'pw', 'pwd', 'pwrd', 'pword', 'paword', + 'pasword', 'paswort', 'pass']; + + public const URL_PARAM_EXCLUSION_TYPE_NAME_NO_EXCLUSIONS = 'no_exclusions'; + public const URL_PARAM_EXCLUSION_TYPE_NAME_COMMON_PII_EXCLUSIONS = 'common_pii_exclusions'; + public const URL_PARAM_EXCLUSION_TYPE_NAME_CUSTOM_EXCLUSIONS = 'custom_exclusions'; + + public const URL_PARAM_EXCLUSION_TYPES = [ + self::URL_PARAM_EXCLUSION_TYPE_NAME_NO_EXCLUSIONS, + self::URL_PARAM_EXCLUSION_TYPE_NAME_COMMON_PII_EXCLUSIONS, + self::URL_PARAM_EXCLUSION_TYPE_NAME_CUSTOM_EXCLUSIONS + ]; + /** * @see \Piwik\Plugin::registerEvents */ @@ -478,6 +508,12 @@ public function getClientSideTranslationKeys(&$translationKeys) $translationKeys[] = 'SitesManager_SiteWithoutDataOtherInstallMethods'; $translationKeys[] = 'Mobile_NavigationBack'; $translationKeys[] = 'SitesManager_SiteWithoutDataInstallWithX'; + $translationKeys[] = 'SitesManager_ExclusionTypeOptionNoExclusions'; + $translationKeys[] = 'SitesManager_ExclusionTypeOptionCommonPIIExclusions'; + $translationKeys[] = 'SitesManager_ExclusionTypeOptionCustomExclusions'; + $translationKeys[] = 'SitesManager_ExclusionTypeDescriptionNoExclusions'; + $translationKeys[] = 'SitesManager_ExclusionTypeDescriptionCommonPIIExclusions'; + $translationKeys[] = 'SitesManager_ExclusionTypeDescriptionCustomExclusions'; } public static function renderTrackingCodeEmail(int $idSite) diff --git a/plugins/SitesManager/lang/en.json b/plugins/SitesManager/lang/en.json index 0abfc0a7404..683130cb694 100644 --- a/plugins/SitesManager/lang/en.json +++ b/plugins/SitesManager/lang/en.json @@ -201,6 +201,13 @@ "SiteWithoutDataSPADescription": "It is easy to start tracking your Single Page Application (SPA) or Progressive Web App (PWA) using Matomo Analytics. The easiest way to do this is using the Matomo Tag Manager (%1$slearn more%2$s) using the steps below, alternatively you can use the JavaScript Tracking code (%3$sfollowing this guide%4$s).", "SiteWithoutDataSPAFollowStepCompleted": "%1$sCongratulations!%2$s You have successfully installed the Matomo Analytics tracking code via the Matomo Tag Manager. To verify that hits are being tracked, visit your SPA / PWA and check that this data is visible in your Matomo instance.", "OtherWaysTabDescription": "Even if the solutions provided in the other tabs were not right for you, you can easily setup Matomo with one of the methods below. You may need the following information:", - "ImageTrackingDescription": "When a visitor has disabled JavaScript, or when JavaScript cannot be used, you can use an image tracking link to track visitors. For the whole list of options you can use with an image tracking link, see the %1$sTracking API Documentation%2$s." + "ImageTrackingDescription": "When a visitor has disabled JavaScript, or when JavaScript cannot be used, you can use an image tracking link to track visitors. For the whole list of options you can use with an image tracking link, see the %1$sTracking API Documentation%2$s.", + "ExclusionTypeOptionNoExclusions": "No exclusions", + "ExclusionTypeOptionCommonPIIExclusions": "Sensible PII exclusions", + "ExclusionTypeOptionCustomExclusions": "Custom exclusions", + "ExclusionTypeDescriptionNoExclusions": "Select this option to include all URL parameters in tracking and reports. No parameters will be excluded, providing a complete view of the URL data for each visit.", + "ExclusionTypeDescriptionCommonPIIExclusions": "Choose this option to exclude a common set of potentially sensitive URL parameters from tracking and reports. These include these parameters: \"%1$s\"", + "ExclusionTypeDescriptionCustomExclusions": "Enter your own list of URL parameters to exclude from tracking and reports. Customize further by pressing the button below the textarea to add a predefined set of common exclusions. You can adjust this list as needed to fit your privacy and tracking requirements.", + "ExceptionInvalidExclusionType": "The exclusion type you provided is invalid" } } diff --git a/plugins/SitesManager/stylesheets/SitesManager.less b/plugins/SitesManager/stylesheets/SitesManager.less index fb531338e25..b79ef21f1c6 100644 --- a/plugins/SitesManager/stylesheets/SitesManager.less +++ b/plugins/SitesManager/stylesheets/SitesManager.less @@ -111,6 +111,11 @@ margin-bottom: 7px; } } + + .limited-height-scrolling-textarea textarea { + max-height: 400px; + overflow-y: auto; + } } td.editable-site-field:hover { diff --git a/plugins/SitesManager/templates/globalSettings.twig b/plugins/SitesManager/templates/globalSettings.twig index f8c0c94c5b1..ecaafad4355 100644 --- a/plugins/SitesManager/templates/globalSettings.twig +++ b/plugins/SitesManager/templates/globalSettings.twig @@ -3,7 +3,5 @@ {% set title %}{{ 'SitesManager_GlobalWebsitesSettings'|translate }}{% endset %} {% block content %} - -
- +
{% endblock %} diff --git a/plugins/SitesManager/tests/Integration/ApiTest.php b/plugins/SitesManager/tests/Integration/ApiTest.php index 908d76402c1..817fac3e2df 100644 --- a/plugins/SitesManager/tests/Integration/ApiTest.php +++ b/plugins/SitesManager/tests/Integration/ApiTest.php @@ -15,6 +15,7 @@ use Piwik\Plugin; use Piwik\Plugins\IntranetMeasurable\Type as IntranetType; use Piwik\Plugins\MobileAppMeasurable; +use Piwik\Plugins\SitesManager\SitesManager; use Piwik\Plugins\WebsiteMeasurable\Type as WebsiteType; use Piwik\Plugins\SitesManager\API; use Piwik\Plugins\SitesManager\Model; @@ -1614,7 +1615,74 @@ public function testSetGlobalExcludedReferrersWithValidValue() $this->assertEquals('http://example.com/path', $excludedReferrers); } + public function testGetExcludedQueryParametersGlobalShowsErrorIfNoViewRights(): void + { + + } + + /** + * @dataProvider getExclusionTypesAndExpectedResults + */ + public function testGetExcludedQueryParametersGlobalShowsCorrectParamsDependingOnExclusionType($exclusionType, $expected): void + { + Option::set(API::OPTION_EXCLUDE_TYPE_QUERY_PARAMS_GLOBAL, $exclusionType); + Option::set(API::OPTION_EXCLUDED_QUERY_PARAMETERS_GLOBAL, 'one,two'); + + $this->assertEquals( + $expected, + API::getInstance()->getExcludedQueryParametersGlobal() + ); + } + + public function getExclusionTypesAndExpectedResults(): \Generator + { + yield 'no exclusions' => ['no_exclusions', '']; + yield 'common PII exclusions' => ['common_pii_exclusions', implode(',', SitesManager::COMMON_URL_PARAMS_TO_EXCLUDE)]; + yield 'custom exclusions' => ['custom_exclusions', 'one,two']; + yield 'empty exclusion type' => ['', 'one,two']; + yield 'false exclusion type' => [false, 'one,two']; + } + /** + * @dataProvider getExclusionTypesWithUrlParamsAndExpectedResults + */ + public function testGetExclusionTypeForQueryParamsReturnsCorrectType($exclusionTypeSetting, string $excludedQueryParamsGlobal, string $expectedType): void + { + if ($exclusionTypeSetting === null) { + Option::delete(API::OPTION_EXCLUDE_TYPE_QUERY_PARAMS_GLOBAL); + } else { + Option::set(API::OPTION_EXCLUDE_TYPE_QUERY_PARAMS_GLOBAL, $exclusionTypeSetting); + } + + Option::set(API::OPTION_EXCLUDED_QUERY_PARAMETERS_GLOBAL, $excludedQueryParamsGlobal); + + $this->assertEquals( + $expectedType, + API::getInstance()->getExclusionTypeForQueryParams() + ); + } + + public function testSetExclusionTypeForQueryParamsThrowsExceptionIfInvalidValueProvided(): void + { + $this->expectExceptionMessage('The exclusion type you provided is invalid'); + API::getInstance()->setExclusionTypeForQueryParams('bad_value'); + } + + public function testSetExclusionTypeForQueryParamsSetsTypeCorrectly(): void + { + API::getInstance()->setExclusionTypeForQueryParams('no_exclusions'); + $this->assertEquals( + 'no_exclusions', + API::getInstance()->getExclusionTypeForQueryParams() + ); + } + + public function getExclusionTypesWithUrlParamsAndExpectedResults(): \Generator + { + yield 'option exists already in options store' => ['no_exclusions', '', 'no_exclusions']; + yield 'option doesnt exist and excluded query parameters has data' => [null, 'myapp_name,myapp_email', 'custom_exclusions']; + yield 'option doesnt exist and excluded query parameters has no data' => [null, '', 'no_exclusions']; + } public function provideContainerConfig() { diff --git a/plugins/SitesManager/vue/src/GlobalSettingsStore/GlobalSettings.ts b/plugins/SitesManager/vue/src/GlobalSettingsStore/GlobalSettings.ts index bf900d6992b..6c5f5d1231b 100644 --- a/plugins/SitesManager/vue/src/GlobalSettingsStore/GlobalSettings.ts +++ b/plugins/SitesManager/vue/src/GlobalSettingsStore/GlobalSettings.ts @@ -15,6 +15,7 @@ interface GlobalSettings { excludedReferrersGlobal?: string; searchKeywordParametersGlobal?: string; searchCategoryParametersGlobal?: string; + exclusionTypeForQueryParams: string; } export default GlobalSettings; diff --git a/plugins/SitesManager/vue/src/GlobalSettingsStore/GlobalSettingsStore.ts b/plugins/SitesManager/vue/src/GlobalSettingsStore/GlobalSettingsStore.ts index 1c1aa5a54ae..262cf4bd46c 100644 --- a/plugins/SitesManager/vue/src/GlobalSettingsStore/GlobalSettingsStore.ts +++ b/plugins/SitesManager/vue/src/GlobalSettingsStore/GlobalSettingsStore.ts @@ -28,6 +28,7 @@ interface SaveGlobalSettingsParams { excludedReferrers: string; searchKeywordParameters: string; searchCategoryParameters: string; + excludeCommonPIIUrlParams: boolean; } class GlobalSettingsStore { @@ -43,6 +44,7 @@ class GlobalSettingsStore { excludedReferrersGlobal: '', searchKeywordParametersGlobal: '', searchCategoryParametersGlobal: '', + exclusionTypeForQueryParams: '', }, }); @@ -87,6 +89,7 @@ class GlobalSettingsStore { excludedReferrersGlobal: response.excludedReferrersGlobal || '', searchKeywordParametersGlobal: response.searchKeywordParametersGlobal || '', searchCategoryParametersGlobal: response.searchCategoryParametersGlobal || '', + exclusionTypeForQueryParams: response.exclusionTypeForQueryParams || '', }; }).finally(() => { this.privateState.isLoading = false; diff --git a/plugins/SitesManager/vue/src/ManageGlobalSettings/ExcludeQueryParameterSettings.vue b/plugins/SitesManager/vue/src/ManageGlobalSettings/ExcludeQueryParameterSettings.vue new file mode 100644 index 00000000000..26b67de2eb2 --- /dev/null +++ b/plugins/SitesManager/vue/src/ManageGlobalSettings/ExcludeQueryParameterSettings.vue @@ -0,0 +1,163 @@ + + + + + diff --git a/plugins/SitesManager/vue/src/ManageGlobalSettings/ManageGlobalSettings.vue b/plugins/SitesManager/vue/src/ManageGlobalSettings/ManageGlobalSettings.vue index 4b8c082fd8e..49fa8397685 100644 --- a/plugins/SitesManager/vue/src/ManageGlobalSettings/ManageGlobalSettings.vue +++ b/plugins/SitesManager/vue/src/ManageGlobalSettings/ManageGlobalSettings.vue @@ -28,19 +28,6 @@ -
-
- {{ translate('SitesManager_ListOfQueryParametersToExclude', '/^sess.*|.*[dD]ate$/') }} - -

- - {{ translate( - 'SitesManager_PiwikWillAutomaticallyExcludeCommonSessionParameters', - 'phpsessid, sessionid, ...', - ) }} -
-
-
{{ translate('SitesManager_GlobalExcludedUserAgentHelp1') }} @@ -110,18 +97,11 @@ />
-
- -
+
({ method: 'API.getIpFromHeader' }).then((response) => { @@ -336,6 +320,7 @@ export default defineComponent({ excludedReferrers: this.excludedReferrersGlobal.join(','), searchKeywordParameters: this.searchKeywordParametersGlobal.join(','), searchCategoryParameters: this.searchCategoryParametersGlobal.join(','), + exclusionTypeForQueryParams: this.exclusionTypeForQueryParams, }).then(() => { Matomo.helper.redirect({ showaddsite: false }); }).finally(() => { diff --git a/plugins/SitesManager/vue/src/index.ts b/plugins/SitesManager/vue/src/index.ts index 40aefcdcc30..3dea67eec65 100644 --- a/plugins/SitesManager/vue/src/index.ts +++ b/plugins/SitesManager/vue/src/index.ts @@ -11,4 +11,5 @@ export { default as CurrencyStore } from './CurrencyStore/CurrencyStore'; export { default as TimezoneStore } from './TimezoneStore/TimezoneStore'; export { default as SitesManagement } from './SitesManagement/SitesManagement.vue'; export { default as ManageGlobalSettings } from './ManageGlobalSettings/ManageGlobalSettings.vue'; +export { default as ExcludeQueryParameterSettings } from './ManageGlobalSettings/ExcludeQueryParameterSettings.vue'; export { default as SiteWithoutData } from './SiteWithoutData/SiteWithoutData.vue'; From 6ff6084d090100d6aaa9ecaf29fb9fa8b7bd5f03 Mon Sep 17 00:00:00 2001 From: caddoo Date: Mon, 4 Nov 2024 15:56:39 +1300 Subject: [PATCH 02/59] Clean up TS --- .../vue/src/GlobalSettingsStore/GlobalSettingsStore.ts | 2 +- .../ManageGlobalSettings/ExcludeQueryParameterSettings.vue | 6 +++--- .../vue/src/ManageGlobalSettings/ManageGlobalSettings.vue | 1 - 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/plugins/SitesManager/vue/src/GlobalSettingsStore/GlobalSettingsStore.ts b/plugins/SitesManager/vue/src/GlobalSettingsStore/GlobalSettingsStore.ts index 262cf4bd46c..de030c741d8 100644 --- a/plugins/SitesManager/vue/src/GlobalSettingsStore/GlobalSettingsStore.ts +++ b/plugins/SitesManager/vue/src/GlobalSettingsStore/GlobalSettingsStore.ts @@ -28,7 +28,7 @@ interface SaveGlobalSettingsParams { excludedReferrers: string; searchKeywordParameters: string; searchCategoryParameters: string; - excludeCommonPIIUrlParams: boolean; + exclusionTypeForQueryParams: string; } class GlobalSettingsStore { diff --git a/plugins/SitesManager/vue/src/ManageGlobalSettings/ExcludeQueryParameterSettings.vue b/plugins/SitesManager/vue/src/ManageGlobalSettings/ExcludeQueryParameterSettings.vue index 26b67de2eb2..d9fceb227a0 100644 --- a/plugins/SitesManager/vue/src/ManageGlobalSettings/ExcludeQueryParameterSettings.vue +++ b/plugins/SitesManager/vue/src/ManageGlobalSettings/ExcludeQueryParameterSettings.vue @@ -6,7 +6,7 @@ -->