From ec2289d45eb2e63d39d0127fffd1c9f107e70654 Mon Sep 17 00:00:00 2001 From: Henri-Damien LAURENT <hdlaurent@afi-sa.fr> Date: Mon, 11 Jul 2022 14:27:49 +0200 Subject: [PATCH] hotline#158843 : file manager now shows xsl files under skins directory --- VERSIONS_HOTLINE/158843 | 1 + library/Class/FileManager.php | 2 +- .../controllers/FileManagerControllerTest.php | 49 ++++++++++++++++++- 3 files changed, 50 insertions(+), 2 deletions(-) create mode 100644 VERSIONS_HOTLINE/158843 diff --git a/VERSIONS_HOTLINE/158843 b/VERSIONS_HOTLINE/158843 new file mode 100644 index 00000000000..0e2c419a254 --- /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 359a534feb1..5ebd92e6d36 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 2195badbbb5..b153ba1aa55 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(); -- GitLab