mirror of
https://github.com/nextcloud/server.git
synced 2026-06-13 10:40:40 -04:00
Merge pull request #20076 from owncloud/fix_20069
Verify the src exists in webdav MOVE
This commit is contained in:
commit
67a71e051f
2 changed files with 17 additions and 0 deletions
|
|
@ -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");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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…
Reference in a new issue