diff --git a/VERSIONS_HOTLINE/98544 b/VERSIONS_HOTLINE/98544 new file mode 100644 index 0000000000000000000000000000000000000000..d91347d269998176d6eb8192c802bdb6c378ad99 --- /dev/null +++ b/VERSIONS_HOTLINE/98544 @@ -0,0 +1 @@ + - ticket #98544 : OPAC CMS: correction de la publication des articles en fonction de leur statut. \ No newline at end of file diff --git a/library/Class/Article.php b/library/Class/Article.php index e1f57fca9f78bd9b5d8e64c75171f74406d5ee5b..22f4bbe241698248b9e341008e22781c612e605b 100644 --- a/library/Class/Article.php +++ b/library/Class/Article.php @@ -1481,12 +1481,8 @@ class Class_Article extends Storm_Model_Abstract { public function isFrontVisible() { - if(Class_Users::isCurrentUserCanAccesBackend()) - return true; - - if($this->isArchived()) - return false; - - return !$this->isStatusDraft(); + return Class_Users::isCurrentUserCanAccesBackend() + ? true + : $this->isVisible(); } } \ No newline at end of file diff --git a/tests/application/modules/admin/controllers/CmsControllerTest.php b/tests/application/modules/admin/controllers/CmsControllerTest.php index 164790a64f9c38cc9b0e5c10e458ab625b04de7a..edcdb7457ef0b502e2b976a9dfb4339a68f592e8 100644 --- a/tests/application/modules/admin/controllers/CmsControllerTest.php +++ b/tests/application/modules/admin/controllers/CmsControllerTest.php @@ -1737,8 +1737,8 @@ class CmsControllerNewsAddActionPostWithWorkflowTest /** @test */ public function sentMailToAuthorWhenNewsIsValidatedShouldContainsDefaultSubject() { $this->postArticleValidated(); - $this->assertEquals('=?utf8?Q?[Bokeh] Validation de l\'article Katsuhiro Otomo ? =?utf8?Q?en dédicace !?', - quoted_printable_decode($this->mock_transport->getSentMails()[0]->getSubject())); + $this->assertEquals('[Bokeh] Validation de l\'article Katsuhiro Otomo en dédicace !', + iconv_mime_decode($this->mock_transport->getSentMails()[0]->getSubject())); } @@ -1835,8 +1835,8 @@ class CmsControllerNewsAddActionPostWithWorkflowTest /** @test */ public function sentMailToAdminWhenValidationPendingShouldContainsDefaultTitle() { $this->postArticleAValider(); - $this->assertContains('=?utf8?Q?[Bokeh] Validation d\'article en attente: ? =?utf8?Q?Katsuhiro Otomo en dédicace !?', - quoted_printable_decode($this->mock_transport->getSentMails()[0]->getSubject())); + $this->assertContains('[Bokeh] Validation d\'article en attente: Katsuhiro Otomo en dédicace !', + iconv_mime_decode($this->mock_transport->getSentMails()[0]->getSubject())); } @@ -2004,8 +2004,8 @@ class CmsControllerWorkflowArticleRefusedTest extends CmsControllerWorkflowTestC /** @test */ public function sentMailToUserWhenRefusedShouldContainsDefaultTitle() { $this->postArticleRefuser(); - $this->assertContains('=?utf8?Q?[Bokeh] Refus de l\'article Katsuhiro Otomo en ? =?utf8?Q?dédicace !?', - quoted_printable_decode($this->mock_transport->getSentMails()[0]->getSubject())); + $this->assertContains('[Bokeh] Refus de l\'article Katsuhiro Otomo en dédicace !', + iconv_mime_decode($this->mock_transport->getSentMails()[0]->getSubject())); } diff --git a/tests/application/modules/opac/controllers/CmsControllerTest.php b/tests/application/modules/opac/controllers/CmsControllerTest.php index 1340209121c0fbeb06048f02e3263d068d7e42fe..fce3a71035cc8fca3c15263c42cc8970222a085e 100644 --- a/tests/application/modules/opac/controllers/CmsControllerTest.php +++ b/tests/application/modules/opac/controllers/CmsControllerTest.php @@ -1387,6 +1387,56 @@ class CmsControllerArticleViewDraftTest extends CmsControllerWithFeteDeLaFriteTe +class CmsControllerArticleViewRefusedTest extends CmsControllerWithFeteDeLaFriteTestCase { + + public function setUp() { + parent::setUp(); + ZendAfi_Auth::getInstance()->clearIdentity(); + Class_AdminVar::newInstanceWithId('WORKFLOW', ['valeur' => '1']); + Class_Article::find(224)->updateAttributes(['status'=>Class_Article::STATUS_REFUSED])->assertSave(); + $this->dispatch('/cms/articleview/id/224', false); + } + + + /** @test */ + public function responseShouldBeA404NotFound() { + $this->assertResponseCode(404); + } + + + /** @test */ + public function pageShouldContainsH1WithNotFound() { + $this->assertXPathContentContains('//h1', 'Désolé, cette page n\'existe pas'); + } +} + + + +class CmsControllerArticleViewValidationPendingTest extends CmsControllerWithFeteDeLaFriteTestCase { + + public function setUp() { + parent::setUp(); + ZendAfi_Auth::getInstance()->clearIdentity(); + Class_AdminVar::newInstanceWithId('WORKFLOW', ['valeur' => '1']); + Class_Article::find(224)->beValidationPending()->assertSave(); + $this->dispatch('/cms/articleview/id/224', false); + } + + + /** @test */ + public function responseShouldBeA404NotFound() { + $this->assertResponseCode(404); + } + + + /** @test */ + public function pageShouldContainsH1WithNotFound() { + $this->assertXPathContentContains('//h1', 'Désolé, cette page n\'existe pas'); + } +} + + + class CmsControllerUnknownArticleTest extends CmsControllerWithFeteDeLaFriteTestCase { public function setUp() { parent::setUp();