Browse Source

Verify the src exists in webdav MOVE

* Unit test added
remotes/origin/dav-zip-folder
Roeland Jago Douma 10 years ago
parent
commit
db17598a0e
  1. 4
      apps/dav/lib/connector/sabre/filesplugin.php
  2. 13
      apps/dav/tests/unit/connector/sabre/filesplugin.php

4
apps/dav/lib/connector/sabre/filesplugin.php

@ -132,6 +132,10 @@ class FilesPlugin extends \Sabre\DAV\ServerPlugin {
if ($sourceDir !== $destinationDir) {
$sourceFileInfo = $this->fileView->getFileInfo($source);
if ($sourceFileInfo === false) {
throw new \Sabre\DAV\Exception\NotFound($source . ' does not exist');
}
if (!$sourceFileInfo->isDeletable()) {
throw new \Sabre\DAV\Exception\Forbidden($source . " cannot be deleted");
}

13
apps/dav/tests/unit/connector/sabre/filesplugin.php

@ -251,4 +251,17 @@ class FilesPlugin extends \Test\TestCase {
$this->plugin->checkMove('FolderA/test.txt', 'test.txt');
}
/**
* @expectedException \Sabre\DAV\Exception\NotFound
* @expectedExceptionMessage FolderA/test.txt does not exist
*/
public function testMoveSrcNotExist() {
$this->view->expects($this->once())
->method('getFileInfo')
->with('FolderA/test.txt')
->willReturn(false);
$this->plugin->checkMove('FolderA/test.txt', 'test.txt');
}
}
Loading…
Cancel
Save