From 5fa1c9a5dc124782e0caaad91c65bbccfb2030d1 Mon Sep 17 00:00:00 2001 From: gloas <gloas@afi-sa.fr> Date: Tue, 20 Mar 2018 14:43:27 +0100 Subject: [PATCH] hotline #73039 improve forbiden deletion or rename messages --- VERSIONS_HOTLINE/73039 | 2 ++ .../controllers/FileManagerController.php | 8 ++++++- .../controllers/FileManagerControllerTest.php | 22 +++++++++++++++++++ 3 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 VERSIONS_HOTLINE/73039 diff --git a/VERSIONS_HOTLINE/73039 b/VERSIONS_HOTLINE/73039 new file mode 100644 index 00000000000..02e1a803bba --- /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 12b4fa881a0..a1304b07524 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 fe740992ed1..b82ea59064f 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']); -- GitLab