|
|
|
|
@ -71,15 +71,25 @@ class App {
|
|
|
|
|
'data' => NULL
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
$normalizedOldPath = \OC\Files\Filesystem::normalizePath($dir . '/' . $oldname);
|
|
|
|
|
$normalizedNewPath = \OC\Files\Filesystem::normalizePath($dir . '/' . $newname);
|
|
|
|
|
|
|
|
|
|
// rename to non-existing folder is denied
|
|
|
|
|
if (!$this->view->file_exists($dir)) {
|
|
|
|
|
if (!$this->view->file_exists($normalizedOldPath)) {
|
|
|
|
|
$result['data'] = array(
|
|
|
|
|
'message' => $this->l10n->t('%s could not be renamed as it has been deleted', array($oldname)),
|
|
|
|
|
'code' => 'sourcenotfound',
|
|
|
|
|
'oldname' => $oldname,
|
|
|
|
|
'newname' => $newname,
|
|
|
|
|
);
|
|
|
|
|
}else if (!$this->view->file_exists($dir)) {
|
|
|
|
|
$result['data'] = array('message' => (string)$this->l10n->t(
|
|
|
|
|
'The target folder has been moved or deleted.',
|
|
|
|
|
array($dir)),
|
|
|
|
|
'code' => 'targetnotfound'
|
|
|
|
|
);
|
|
|
|
|
// rename to existing file is denied
|
|
|
|
|
} else if ($this->view->file_exists($dir . '/' . $newname)) {
|
|
|
|
|
} else if ($this->view->file_exists($normalizedNewPath)) {
|
|
|
|
|
|
|
|
|
|
$result['data'] = array(
|
|
|
|
|
'message' => $this->l10n->t(
|
|
|
|
|
@ -90,10 +100,10 @@ class App {
|
|
|
|
|
// rename to "." is denied
|
|
|
|
|
$newname !== '.' and
|
|
|
|
|
// THEN try to rename
|
|
|
|
|
$this->view->rename($dir . '/' . $oldname, $dir . '/' . $newname)
|
|
|
|
|
$this->view->rename($normalizedOldPath, $normalizedNewPath)
|
|
|
|
|
) {
|
|
|
|
|
// successful rename
|
|
|
|
|
$meta = $this->view->getFileInfo($dir . '/' . $newname);
|
|
|
|
|
$meta = $this->view->getFileInfo($normalizedNewPath);
|
|
|
|
|
$fileinfo = \OCA\Files\Helper::formatFileInfo($meta);
|
|
|
|
|
$result['success'] = true;
|
|
|
|
|
$result['data'] = $fileinfo;
|
|
|
|
|
|