diff --git a/VERSIONS_HOTLINE/73039 b/VERSIONS_HOTLINE/73039 new file mode 100644 index 0000000000000000000000000000000000000000..02e1a803bbab6346e2aca5f84166660e9a683b70 --- /dev/null +++ b/VERSIONS_HOTLINE/73039 @@ -0,0 +1,2 @@ + - ticket #73039 : Explorateur de fichiers : amélioration des messages d'interdiction de suppression et de renommage des éléments. + \ No newline at end of file diff --git a/application/modules/admin/controllers/FileManagerController.php b/application/modules/admin/controllers/FileManagerController.php index 12b4fa881a0b39b076f87d1acf6dd00061b511fa..a1304b07524a7d579fef4924c4d57373e2f0af14 100644 --- a/application/modules/admin/controllers/FileManagerController.php +++ b/application/modules/admin/controllers/FileManagerController.php @@ -123,7 +123,8 @@ class Admin_FileManagerController extends ZendAfi_Controller_Action { $this->view->item = $item = $this->_findItemFromParams(); if(!$item->isDeepWritable()) - return $this->_redirectWithMessage($this->_('Le dossier "%s" ne peut pas être supprimé car il contient des éléments protégés en écriture ou utilisés dans les articles, les domaines ou les profils.', $item->getPath())); + return $this->_redirectToPathWithMessage($item->getPath(), + $this->_('Le dossier "%s" ne peut pas être supprimé car il contient des éléments protégés en écriture ou utilisés dans les articles, les domaines ou les profils.', $item->getPath())); $this->view->titre = $this->_('Supprimer "%s"', $item->getPath()); $this->view->models = $item->getModels(); @@ -267,6 +268,11 @@ class Admin_FileManagerController extends ZendAfi_Controller_Action { public function renameAction() { $item = $this->_findItemFromParams(); $this->view->titre = $this->_('Renommer "%s"', $item->getBasename()); + + if(!$item->isDeepWritable()) + return $this->_redirectToPathWithMessage($item->getPath(), + $this->_('L\'élément "%s" ne peut pas être renommé car il est lié à des éléments protégés en écriture ou utilisés dans les articles, les domaines ou les profils.', $item->getPath())); + $this->view->form = $form = ZendAfi_Form_Admin_FileManager_Rename::newWith(['into' => $item->getRealpath(), 'name' => $item->getBasename()]); diff --git a/tests/application/modules/admin/controllers/FileManagerControllerTest.php b/tests/application/modules/admin/controllers/FileManagerControllerTest.php index fe740992ed12ef5f5030ba1081156c08a39fb07e..b82ea59064f7ee823b7145273d34ef046ef2efe7 100644 --- a/tests/application/modules/admin/controllers/FileManagerControllerTest.php +++ b/tests/application/modules/admin/controllers/FileManagerControllerTest.php @@ -488,6 +488,17 @@ class FileManagerControllerDropDispatchTest extends FileManagerControllerTestCas } + /** @test */ + public function dispatchDeleteWithNonDeepWritableItemShouldRedirect() { + $disk = Class_FileManager::getFileSystem() + ->whenCalled('isDeepWritable') + ->answers(false); + + $this->dispatch('/admin/file-manager/delete?item=userfiles%2Fimage%2Fwhite', true); + $this->assertRedirectTo('/admin/file-manager/index?browser=userfiles%2Fimage%2Fwhite'); + } + + /** @test */ public function dispatchCreateShouldContainsNewFolderForm() { $this->dispatch('/admin/file-manager/create?into=userfiles%2Fimage%2Fwhite', true); @@ -518,6 +529,17 @@ class FileManagerControllerDropDispatchTest extends FileManagerControllerTestCas } + /** @test */ + public function dispatchRenameWithNonDeepWritableItemShouldRedirect() { + $disk = Class_FileManager::getFileSystem() + ->whenCalled('isDeepWritable') + ->answers(false); + + $this->dispatch('/admin/file-manager/rename?item=userfiles%2Fimage%2Fwhite', true); + $this->assertRedirectTo('/admin/file-manager/index?browser=userfiles%2Fimage%2Fwhite'); + } + + /** @test */ public function postDispatchRenameShouldDisplayRenameForm() { $this->postDispatch('/admin/file-manager/rename?item=userfiles%2Fimage%2Fwhite', ['name' => 'new']);