[Pkg-owncloud-commits] [owncloud] 40/258: Catch exceptions when moving files

David Prévot taffit at moszumanska.debian.org
Sat Oct 11 17:22:18 UTC 2014


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to branch master
in repository owncloud.

commit 85cde16febe71aa1539b4a599bd7612c98312a20
Author: Vincent Petry <pvince81 at owncloud.com>
Date:   Fri Sep 5 14:54:06 2014 +0200

    Catch exceptions when moving files
    
    When moving files on storages that don't expose permissions, the storage
    itself might throw an exception when the permission is denied.
    
    This fix ensures that exceptions are caught and forwarded to the client
    instead of just hanging.
    
    Backport of e43c9b84c42a8b3f4fb25a950123fbcc060d1a5a from master
---
 apps/files/ajax/move.php | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/apps/files/ajax/move.php b/apps/files/ajax/move.php
index 0a8dbc2..968cd2b 100644
--- a/apps/files/ajax/move.php
+++ b/apps/files/ajax/move.php
@@ -19,10 +19,16 @@ if(\OC\Files\Filesystem::file_exists($target . '/' . $file)) {
 if ($target != '' || strtolower($file) != 'shared') {
 	$targetFile = \OC\Files\Filesystem::normalizePath($target . '/' . $file);
 	$sourceFile = \OC\Files\Filesystem::normalizePath($dir . '/' . $file);
-	if(\OC\Files\Filesystem::rename($sourceFile, $targetFile)) {
-		OCP\JSON::success(array("data" => array( "dir" => $dir, "files" => $file )));
-	} else {
-		OCP\JSON::error(array("data" => array( "message" => $l->t("Could not move %s", array($file)) )));
+	try {
+		if(\OC\Files\Filesystem::rename($sourceFile, $targetFile)) {
+			OCP\JSON::success(array("data" => array( "dir" => $dir, "files" => $file )));
+		} else {
+			OCP\JSON::error(array("data" => array( "message" => $l->t("Could not move %s", array($file)) )));
+		}
+	} catch (\OCP\Files\NotPermittedException $e) {
+		OCP\JSON::error(array("data" => array( "message" => $l->t("Permission denied") )));
+	} catch (\Exception $e) {
+		OCP\JSON::error(array("data" => array( "message" => $e->getMessage())));
 	}
 }else{
 	OCP\JSON::error(array("data" => array( "message" => $l->t("Could not move %s", array($file)) )));

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud.git



More information about the Pkg-owncloud-commits mailing list