From 3077b31f3aa1a15e5d1edfc7dcde9b046e8cf33f Mon Sep 17 00:00:00 2001 From: Laurent Laffont <llaffont@afi-sa.fr> Date: Wed, 18 Jan 2017 11:06:27 +0100 Subject: [PATCH] hotline #51711 remove http:// from NOM_DOMAINE variable and build correct sitemap --- VERSIONS_HOTLINE/51711 | 1 + VERSIONS_WIP/43485 | 1 + .../admin/views/scripts/index/index.phtml | 2 +- library/Class/AdminVar.php | 6 ++++-- library/Class/Formation/AbstractMail.php | 2 +- library/Class/Url.php | 7 +++---- .../ZendAfi/Controller/Plugin/SetupDomain.php | 2 +- tests/library/Class/BatchTest.php | 2 +- .../WebService/WebAnalyticsClientTest.php | 19 ++++++++++++++++++- 9 files changed, 31 insertions(+), 11 deletions(-) create mode 100644 VERSIONS_HOTLINE/51711 create mode 100644 VERSIONS_WIP/43485 diff --git a/VERSIONS_HOTLINE/51711 b/VERSIONS_HOTLINE/51711 new file mode 100644 index 00000000000..c209b608ad5 --- /dev/null +++ b/VERSIONS_HOTLINE/51711 @@ -0,0 +1 @@ + - ticket #51711 : variable NOM_DOMAINE mal utilisée \ No newline at end of file diff --git a/VERSIONS_WIP/43485 b/VERSIONS_WIP/43485 new file mode 100644 index 00000000000..d7588c63fe1 --- /dev/null +++ b/VERSIONS_WIP/43485 @@ -0,0 +1 @@ + - ticket #43485 : vérification du format de la variable NOM_DOMAINE \ No newline at end of file diff --git a/application/modules/admin/views/scripts/index/index.phtml b/application/modules/admin/views/scripts/index/index.phtml index bcf809c458b..02a1607cc6f 100644 --- a/application/modules/admin/views/scripts/index/index.phtml +++ b/application/modules/admin/views/scripts/index/index.phtml @@ -15,7 +15,7 @@ if ($this->user->isAdmin()) { } echo $this->ligneInfos($this->_('Etat du site'), $this->etat_site . $lien) - . $this->ligneInfos($this->_('Nom du domaine'), Class_AdminVar::get('NOM_DOMAINE') . $edit_domain_name); + . $this->ligneInfos($this->_('Nom du domaine'), Class_AdminVar::getNomDomaine() . $edit_domain_name); ?> <h2><?php echo $this->_('Données en attente de modération');?> : diff --git a/library/Class/AdminVar.php b/library/Class/AdminVar.php index 5f2c656d791..3d845076a58 100644 --- a/library/Class/AdminVar.php +++ b/library/Class/AdminVar.php @@ -753,8 +753,10 @@ class Class_AdminVarLoader extends Storm_Model_Loader { /** @return string */ public function getNomDomaine() { - $domaine = trim(Class_AdminVar::get('NOM_DOMAINE')); - return $domaine ? $domaine : $_SERVER['SERVER_NAME']; + return + ($domaine = preg_replace('|^.+://|', '' , trim(Class_AdminVar::get('NOM_DOMAINE')))) + ? $domaine + : SERVER['SERVER_NAME']; } diff --git a/library/Class/Formation/AbstractMail.php b/library/Class/Formation/AbstractMail.php index cdd0a2c1d99..19bcd98d1f2 100644 --- a/library/Class/Formation/AbstractMail.php +++ b/library/Class/Formation/AbstractMail.php @@ -75,7 +75,7 @@ abstract class Class_Formation_AbstractMail { $mail->addTo($recipient); $mail - ->setFrom('no-reply@' . Class_AdminVar::get('NOM_DOMAINE')) + ->setFrom('no-reply@' . Class_AdminVar::getNomDomaine()) ->setSubject($subject) ->setBodyHtml($body) ->send(); diff --git a/library/Class/Url.php b/library/Class/Url.php index bf43638643b..b5eebd23332 100644 --- a/library/Class/Url.php +++ b/library/Class/Url.php @@ -32,7 +32,7 @@ class Class_Url { $forbiden_urls = unserialize(FORBIDEN_URLS); if(!static::$_forbiden_urls) - return static::$_forbiden_urls = $forbiden_urls; // php compatibility define not compatbile with array (until php 5.7) use : defineConstante('NOM_DOMAINE', serialize(array())); + return static::$_forbiden_urls = $forbiden_urls; // php compatibility define not compatible with array (until php 5.7) use : defineConstante('NOM_DOMAINE', serialize(array())); return static::$_forbiden_urls; } @@ -44,9 +44,8 @@ class Class_Url { public static function siteUrl() { - $url = Class_AdminVar::get('NOM_DOMAINE') - ? Class_AdminVar::get('NOM_DOMAINE') - : self::rootUrl() . self::baseUrl(); + if (!$url = Class_AdminVar::getNomDomaine()) + $url = self::rootUrl() . self::baseUrl(); return false === strpos($url, '://') ? 'http://' . $url diff --git a/library/ZendAfi/Controller/Plugin/SetupDomain.php b/library/ZendAfi/Controller/Plugin/SetupDomain.php index 45cca4824d6..9ff44b089ab 100644 --- a/library/ZendAfi/Controller/Plugin/SetupDomain.php +++ b/library/ZendAfi/Controller/Plugin/SetupDomain.php @@ -21,7 +21,7 @@ class ZendAfi_Controller_Plugin_SetupDomain extends Zend_Controller_Plugin_Abstract { public function preDispatch(Zend_Controller_Request_Abstract $request) { - if(Class_Adminvar::get('NOM_DOMAINE')) + if (Class_Adminvar::getNomDomaine()) return; $site_url = Class_Url::siteUrl(); diff --git a/tests/library/Class/BatchTest.php b/tests/library/Class/BatchTest.php index 478d2941a0b..a9a5c284c1d 100644 --- a/tests/library/Class/BatchTest.php +++ b/tests/library/Class/BatchTest.php @@ -186,7 +186,7 @@ class BatchBuildSitemapTest extends Storm_Test_ModelTestCase { $this->fixture('Class_AdminVar', ['id' => 'NOM_DOMAINE', 'clef' => 'NOM_DOMAINE', - 'valeur' => 'http://wiki.bokeh-library-portal.org']); + 'valeur' => 'wiki.bokeh-library-portal.org']); } diff --git a/tests/library/Class/WebService/WebAnalyticsClientTest.php b/tests/library/Class/WebService/WebAnalyticsClientTest.php index a546d1b847c..718e05132f5 100644 --- a/tests/library/Class/WebService/WebAnalyticsClientTest.php +++ b/tests/library/Class/WebService/WebAnalyticsClientTest.php @@ -81,17 +81,28 @@ class Class_WebService_WebAnalyticsClientInstanciationWithVarGoogleAnalyticsAndD public function trackerDomainNameShouldBeMonOpacDotCom() { $this->assertEquals('monopac.com', $this->_web_analytics_client->getTrackerDomainName()); } + + + /** + * @see http://forge.afi-sa.fr/issues/51711 + * @test + */ + public function schemeInDomainNameShouldBeRemoved() { + Class_AdminVar::newInstanceWithId('NOM_DOMAINE', ['valeur' => "http://monopac.com"]); + $this->assertEquals('monopac.com', $this->_web_analytics_client->getTrackerDomainName()); + } } -class Class_WebService_WebAnalyticsClientInstanciationWithWrongGoogleAnalyticsTest extends Storm_Test_ModelTestCase { +class Class_WebService_WebAnalyticsClientInstanciationWithWrongGoogleAnalyticsAndDomainNameTest extends Storm_Test_ModelTestCase { public function setUp() { parent::setUp(); Class_AdminVar::newInstanceWithId('JS_STAT', ['valeur' => "<script> var _gaq = _ga(); </script>"]); + Class_AdminVar::newInstanceWithId('NOM_DOMAINE', ['valeur' => "http://monopac.com"]); $this->_web_analytics_client = new Class_WebService_Analytics_Client(); } @@ -107,6 +118,12 @@ class Class_WebService_WebAnalyticsClientInstanciationWithWrongGoogleAnalyticsTe $this->assertInstanceOf('Class_WebService_Analytics_NullTracker', $this->_web_analytics_client->getTracker()); } + + + /** @test */ + public function trackerDomainNameShouldBeMonOpacDotCom() { + $this->assertEquals('monopac.com', $this->_web_analytics_client->getTrackerDomainName()); + } } -- GitLab