From abaee8bd3a6d61ceec90f63418bf84998e4dc98f Mon Sep 17 00:00:00 2001 From: Alex Arnaud <alex.arnaud@biblibre.com> Date: Tue, 29 Sep 2015 15:59:56 +0200 Subject: [PATCH] dev #29524 - Add a variable that enables/disables the process of checking consent for cookies --- library/Class/AdminVar.php | 3 ++- .../ZendAfi/Controller/Plugin/CnilConsent.php | 3 ++- .../opac/controllers/IndexControllerTest.php | 25 +++++++++++++++++++ 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/library/Class/AdminVar.php b/library/Class/AdminVar.php index 87eeba675d6..53527cfe81d 100644 --- a/library/Class/AdminVar.php +++ b/library/Class/AdminVar.php @@ -162,7 +162,8 @@ class Class_AdminVarLoader extends Storm_Model_Loader { 'TEXT_REPLACEMENTS' => Class_AdminVar_Meta::newRawText($this->_('Remplacement de textes à la volée. <br/>Ex:<br/>Panier;Sélection<br/>Vous avez %%d paniers;Vous avez %%d sélections')), 'URL_COSMOGRAMME' => Class_AdminVar_Meta::newDefault('')->bePrivate(), - 'PACK_MOBILE' => Class_AdminVar_Meta::newOnOff($this->_('Activation des fonctions avancées du téléphone'))->bePrivate()], + 'PACK_MOBILE' => Class_AdminVar_Meta::newOnOff($this->_('Activation des fonctions avancées du téléphone'))->bePrivate(), + 'CNIL_CONSENT_ENABLE' => Class_AdminVar_Meta::newOnOff("Affiche la demande de consentement avant l'insertion de cookies ou autres traceurs")->bePrivate()], 'catalogue' => [ 'OAI_SERVER' => Class_AdminVar_Meta::newOnOff($this->_('Activation du serveur OAI: permet le moissonnage des domaines par d\'autres logiciels via OAI'))], 'newsletter' => [ diff --git a/library/ZendAfi/Controller/Plugin/CnilConsent.php b/library/ZendAfi/Controller/Plugin/CnilConsent.php index 14544081a50..cf0b78107ad 100644 --- a/library/ZendAfi/Controller/Plugin/CnilConsent.php +++ b/library/ZendAfi/Controller/Plugin/CnilConsent.php @@ -24,6 +24,7 @@ class ZendAfi_Controller_Plugin_CnilConsent extends Zend_Controller_Plugin_Abstract { function preDispatch(Zend_Controller_Request_Abstract $request) { - (new Class_Cnil())->trackConsent(); + if (Class_AdminVar::get('CNIL_CONSENT_ENABLE')) + (new Class_Cnil())->trackConsent(); } } diff --git a/tests/application/modules/opac/controllers/IndexControllerTest.php b/tests/application/modules/opac/controllers/IndexControllerTest.php index 735d5d6510f..46202796e82 100644 --- a/tests/application/modules/opac/controllers/IndexControllerTest.php +++ b/tests/application/modules/opac/controllers/IndexControllerTest.php @@ -322,6 +322,10 @@ abstract class IndexControllerCnilTrackingTestCase extends AbstractControllerTes public function setUp() { parent::setUp(); + + $this->fixture('Class_AdminVar', ['id' => 'CNIL_CONSENT_ENABLE', + 'valeur' => true]); + Class_Cnil::setTimeSource($this->mock() ->whenCalled('time') ->answers(strtotime('2015-09-25 15:45:54'))); @@ -348,6 +352,7 @@ class IndexControllerCnilTrackingFirstVisitTest public function setUp() { parent::setUp(); + $this->dispatch('/', true); } @@ -366,6 +371,26 @@ class IndexControllerCnilTrackingFirstVisitTest +class IndexControllerCnilTrackingFirstVisitWithAdminVarDisabledTest + extends IndexControllerCnilTrackingTestCase { + + public function setUp() { + parent::setUp(); + + $this->fixture('Class_AdminVar', ['id' => 'CNIL_CONSENT_ENABLE', + 'valeur' => false]); + $this->dispatch('/', true); + } + + + /** @test */ + public function shouldDisplayCnilMessage() { + $this->assertNotXPathContentContains('//script', $this->_expected_message); + } +} + + + class IndexControllerCnilTrackingSecondVisitTest extends IndexControllerCnilTrackingTestCase { -- GitLab