diff --git a/VERSIONS_HOTLINE/158843 b/VERSIONS_HOTLINE/158843 new file mode 100644 index 0000000000000000000000000000000000000000..0e2c419a2543baaacd965d345b7b4770cc422a11 --- /dev/null +++ b/VERSIONS_HOTLINE/158843 @@ -0,0 +1 @@ + - correctif #158843 : Explorateur de fichier : les fichiers XSLT présents dans les skins sont désormais accessibles en lecture aux rédacteurs pour permettre le paramétrage des vues notices et résultats de recherche. \ No newline at end of file diff --git a/library/Class/FileManager.php b/library/Class/FileManager.php index 359a534feb1ed07424bd0f13a14c54555f9bf7b4..5ebd92e6d360f1a81e886d2e34b74ff971591a0b 100644 --- a/library/Class/FileManager.php +++ b/library/Class/FileManager.php @@ -120,7 +120,7 @@ class Class_FileManager extends Class_Entity { return null; return static::directory(SKINS) - ->setPermissionRegExp('/^skins\/(((?:(?!\/).)+)$|((?:(?!\/).)+)\/(js|css|images|fonts))/') + ->setPermissionRegExp('/^skins\/(((?:(?!\/).)+)$|((?:(?!\/).)+)\/(xsl|js|css|images|fonts))/') ->setWritable(false); } diff --git a/tests/application/modules/admin/controllers/FileManagerControllerTest.php b/tests/application/modules/admin/controllers/FileManagerControllerTest.php index 2195badbbb5f3ba917b59403cd59eae3823e693a..b153ba1aa550ea8cc5be4f48a220ef42d1a3bdc0 100644 --- a/tests/application/modules/admin/controllers/FileManagerControllerTest.php +++ b/tests/application/modules/admin/controllers/FileManagerControllerTest.php @@ -122,6 +122,20 @@ abstract class FileManagerControllerTestCase extends Admin_AbstractControllerTes ->setName('skins') ->setPath('skins'); + $skins_xslt = (new Class_FileManager) + ->setId('skins/xslt') + ->setDir(true) + ->setParentPath('skins') + ->setPath('skins/xslt') + ->setName('xslt'); + + $skins_xsl_File = (new Class_FileManager) + ->setId('skins/xslt/majolie.xsl') + ->setDir(false) + ->setParentPath('skins/xslt') + ->setPath('skins/xslt/majolie.xsl') + ->setName('majolie.xsl'); + $this->_dir = (new Class_FileManager) ->setId('userfiles/image') ->setParentPath('userfiles') @@ -175,11 +189,27 @@ abstract class FileManagerControllerTestCase extends Admin_AbstractControllerTes ->whenCalled('directoriesAt') ->with('skins') - ->answers([]) + ->answers([$skins_xslt]) ->whenCalled('filesAt') ->with('skins') ->answers([]) + + ->whenCalled('filesAt') + ->with('skins/xslt') + ->answers([$skins_xsl_File]) + + ->whenCalled('fileAt') + ->with('skins/xslt') + ->answers($skins_xsl_File) + + ->whenCalled('directoriesAt') + ->with('skins/xslt') + ->answers([]) + + ->whenCalled('directoryAt') + ->with('skins/xslt') + ->answers($skins_xslt) ; Class_FileManager::setFileSystem($disk); @@ -339,6 +369,23 @@ class FileManagerControllerDispatchTest extends FileManagerControllerTestCase { +class FileManagerControllerSkinsXsltTest + extends FileManagerControllerTestCase{ + + public function setUp() { + parent::setUp(); + $this->dispatch('/admin/file-manager/index?browser=skins%2Fxslt'); + } + + + /** @test */ + public function withSkinsXsltDirectoryFileManagerShouldDisplayMajolieDotXsl() { + $this->assertXPathContentContains('//table[contains(@id,"file-manager")]//a', 'majolie.xsl'); + } +} + + + class FileManagerControllerIndexWithOtherRootsTest extends FileManagerControllerTestCase { public function setUp() { parent::setUp();