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:
authorPeter Zhang <peter@innocraft.com>2022-10-14 14:28:11 +0300
committerGitHub <noreply@github.com>2022-10-14 14:28:11 +0300
commit13c828a21b510d6ca46a1d16dc7968faaf8e1913 (patch)
tree03c9771665aa94a96d9955d7381e731f9e5a963b
parente504e67687ba0481c53e72e0f8759bbcfc0076cf (diff)
allow empty excludedReferrers on the global setting (#19834)
* allow emply excludedReferrers allow emply excludedReferrers * add some tests for set refer and update isLookLikeUrl function add some tests for set refer and update isLookLikeUrl function * update phpcs update phpcs * revert Urlhelper, implement in api revert Urlhelper, implement in api * remove filter_var tests remove filter_var tests * fix code indent Co-authored-by: sgiehl <stefan@matomo.org>
-rw-r--r--core/UrlHelper.php2
-rw-r--r--plugins/SitesManager/API.php10
-rw-r--r--plugins/SitesManager/tests/Integration/ApiTest.php29
3 files changed, 35 insertions, 6 deletions
diff --git a/core/UrlHelper.php b/core/UrlHelper.php
index 94c8ff9d55..1e51828977 100644
--- a/core/UrlHelper.php
+++ b/core/UrlHelper.php
@@ -50,7 +50,7 @@ class UrlHelper
}
return false;
}
-
+
/**
* Converts an array of query parameter name/value mappings into a query string.
* Parameters that are in `$parametersToExclude` will not appear in the result.
diff --git a/plugins/SitesManager/API.php b/plugins/SitesManager/API.php
index 77d080b241..493d6656cc 100644
--- a/plugins/SitesManager/API.php
+++ b/plugins/SitesManager/API.php
@@ -12,22 +12,23 @@ namespace Piwik\Plugins\SitesManager;
use DateTimeZone;
use Exception;
+use Matomo\Network\IPUtils;
use Piwik\Access;
use Piwik\Common;
use Piwik\Container\StaticContainer;
+use Piwik\DataAccess\Model as CoreModel;
use Piwik\Date;
use Piwik\Exception\UnexpectedWebsiteFoundException;
use Piwik\Intl\Data\Provider\CurrencyDataProvider;
-use Matomo\Network\IPUtils;
use Piwik\Option;
use Piwik\Piwik;
use Piwik\Plugin\SettingsProvider;
use Piwik\Plugins\CorePluginsAdmin\SettingsMetadata;
use Piwik\Plugins\WebsiteMeasurable\Settings\Urls;
-use Piwik\Settings\Measurable\MeasurableProperty;
-use Piwik\Settings\Measurable\MeasurableSettings;
use Piwik\ProxyHttp;
use Piwik\Scheduler\Scheduler;
+use Piwik\Settings\Measurable\MeasurableProperty;
+use Piwik\Settings\Measurable\MeasurableSettings;
use Piwik\SettingsPiwik;
use Piwik\SettingsServer;
use Piwik\Site;
@@ -36,7 +37,6 @@ use Piwik\Tracker\TrackerCodeGenerator;
use Piwik\Translation\Translator;
use Piwik\Url;
use Piwik\UrlHelper;
-use Piwik\DataAccess\Model as CoreModel;
/**
* The SitesManager API gives you full control on Websites in Matomo (create, update and delete), and many methods to retrieve websites based on various attributes.
@@ -1155,7 +1155,7 @@ class API extends \Piwik\Plugin\API
$excludedUrls = $this->checkAndReturnCommaSeparatedStringList($excludedReferrers);
- foreach (explode(',', $excludedUrls) ?: [] as $url) {
+ foreach (!empty($excludedUrls) ? explode(',', $excludedUrls) : [] as $url) {
// We allow urls to be provided:
// - fully qualified like http://example.url/path
// - without protocol like example.url/path
diff --git a/plugins/SitesManager/tests/Integration/ApiTest.php b/plugins/SitesManager/tests/Integration/ApiTest.php
index 1d324a2a33..083132f1e9 100644
--- a/plugins/SitesManager/tests/Integration/ApiTest.php
+++ b/plugins/SitesManager/tests/Integration/ApiTest.php
@@ -10,6 +10,7 @@
namespace Piwik\Plugins\SitesManager\tests\Integration;
use Piwik\Container\StaticContainer;
+use Piwik\Option;
use Piwik\Piwik;
use Piwik\Plugin;
use Piwik\Plugins\MobileAppMeasurable;
@@ -1527,6 +1528,34 @@ class ApiTest extends IntegrationTestCase
$this->assertEquals($resultWanted, $sites);
}
+
+ public function testSetGlobalExcludedReferrersWithEmptyValue()
+ {
+ API::getInstance()->setGlobalExcludedReferrers('');
+ $excludedReferrers = Option::get('SitesManager_ExcludedReferrersGlobal');
+ $this->assertEquals('', $excludedReferrers);
+ }
+
+ public function testSetGlobalExcludedReferrersWithValidValue()
+ {
+ API::getInstance()->setGlobalExcludedReferrers('example.com');
+ $excludedReferrers = Option::get('SitesManager_ExcludedReferrersGlobal');
+ $this->assertEquals('example.com', $excludedReferrers);
+
+
+ API::getInstance()->setGlobalExcludedReferrers('.example.com');
+ $excludedReferrers = Option::get('SitesManager_ExcludedReferrersGlobal');
+ $this->assertEquals('.example.com', $excludedReferrers);
+
+
+ API::getInstance()->setGlobalExcludedReferrers('http://example.com/path');
+ $excludedReferrers = Option::get('SitesManager_ExcludedReferrersGlobal');
+ $this->assertEquals('http://example.com/path', $excludedReferrers);
+
+ }
+
+
+
public function provideContainerConfig()
{
return [